如何将文本“ON”和“OFF”添加到切换按钮

新手上路,请多包涵

在我的项目中,我想在我现有的切换代码上添加一个文本。所以我想要这样,当切换为 ON 时,它应该显示文本“ON”,如果切换关闭,则显示“OFF”文本。我无法将其更改为其他切换,因为它已经有一个使用它的后端。我只想输入“ON”和“OFF”文本。谢谢你。

这是我的代码

   .switch input {
  display: none;
}

.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ca2222;
  -webkit-transition: .4s;
  transition: .4s;
}

.slider:before {
  position: absolute;
  content: "";
  height: 26px;
  width: 26px;
  left: 4px;
  bottom: 4px;
  background-color: white;
  -webkit-transition: .4s;
  transition: .4s;
}

input:checked+.slider {
  background-color: #2ab934;
}

input:focus+.slider {
  box-shadow: 0 0 1px #2196F3;
}

input:checked+.slider:before {
  -webkit-transform: translateX(26px);
  -ms-transform: translateX(26px);
  transform: translateX(26px);
}

/* Rounded sliders */

.slider.round {
  border-radius: 34px;
}

.slider.round:before {
  border-radius: 50%;
 <label class="switch"><input type="checkbox" id="togBtn"><div class="slider round"></span></div></label>

原文由 KennethLazos 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 435
1 个回答

采用极简方法的纯 CSS

您只需要一个带有背景作为滑块的复选框和您的 content ,开/关。结果是可以访问键盘和屏幕阅读器。

 input {
  -webkit-appearance: none;
  appearance: none;
  width: 64px;
  padding-left: 33px;
  margin: 0;
  border-radius: 16px;
  background: radial-gradient(circle 12px, white 100%, transparent calc(100% + 1px)) #ccc -16px;
  transition: 0.3s ease-in-out;
}

input::before {
  content: "OFF";
  font: bold 12px/32px Verdana;
  color: white;
  text-shadow: 0 1px black;
}

:checked {
  padding-left: 8px;
  background-color: dodgerBlue;
  background-position: 16px;
}

:checked::before {
  content: "ON";
}
 <input type="checkbox">

原文由 Mori 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题