javascript - 如何在 React 中的切换开关组件内添加文本?

标签 javascript html css reactjs

如何在 ReactJS 的 Switch 组件内添加文本?我正在尝试在 Switch 组件内添加 ENPT 文本。

我没有使用任何库,我只使用 css 构建了组件,因为我需要它进行特定的自定义,所以我发现使用 css 更容易。

我把我的元素放入 codesandbox

enter image description here

import React from "react";
import "./switch.css";

const Switch = ({ isOn, handleToggle, onColor }) => {
  return (
    <>
      <input
        checked={isOn}
        onChange={handleToggle}
        className="react-switch-checkbox"
        id={`react-switch-new`}
        type="checkbox"
      />
      <label
        style={{ background: isOn && onColor }}
        className="react-switch-label"
        htmlFor={`react-switch-new`}
      >
        <span className={`react-switch-button`} />
      </label>
    </>
  );
};

export default Switch;
.react-switch-checkbox {
  height: 0;
  width: 0;
  visibility: hidden;
}

.react-switch-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  width: 100px;
  height: 50px;
  background: #fff;
  position: relative;
  transition: background-color 0.2s;
}

.react-switch-label .react-switch-button {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 45px;
  height: 45px;
  transition: 0.2s;
  background: #000;
  box-shadow: 0 0 2px 0 rgba(10, 10, 10, 0.29);
}

.react-switch-checkbox:checked + .react-switch-label .react-switch-button {
  left: calc(100% - 2px);
  transform: translateX(-100%);
}

.react-switch-label:active .react-switch-button {
  width: 60px;
}

非常感谢您的帮助!!

最佳答案

看看my fork你的沙箱。 首先,我移动了<input>进入<label>所以它不需要 id/htmlFor一旦您使用多个开关,该结构就会由于重复的 id 而被破坏。

文字span s 现在在自己的 div 中里面label 。它们各自具有 50% 的宽度,分别与左边缘和右边缘对齐,并使用 Flexbox 将其内容居中。

根据复选框任一状态下白色区域的宽度,您可能需要更改跨度的宽度以使文本正确居中。此外,标签文本可以移动到属性中以便重用。

关于javascript - 如何在 React 中的切换开关组件内添加文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65703157/

相关文章:

javascript - 在传单 map 控制图层中切换标记的正确方法是什么?

html - 如何测试网站的更大显示器?

html - 解析此 "simple"html 页面的巨大问题

javascript - 单页应用程序 (SPA) 与全栈应用程序。限制和优势。

javascript - 我是 Angularjs 新手,只是尝试填充多个 json 值,但它不起作用

javascript - 在移动设备上使用 google chrome 滚动时出现白框

javascript - 无法更新 JavaScript 全局变量

css - 使用 ng-select 时如何更改 css?

CSS 伪类 active 的行为类似于事件冒泡

javascript - 倾斜段落中的文本