javascript - 自定义复选框标签不合适

标签 javascript css reactjs react-bootstrap

我尝试构建自己的复选框,它看起来像一个按钮,并找到了各种解决方案,但设计仍然不好,因为其中一个元素没有正确显示

正如您在下图中看到的,选择图像后,oragne 背景不会覆盖整个按钮,看起来不错。

enter image description here

我尝试修复它,但大多数时候,我破坏了设计

import React from 'react';
import './CheckboxButton.css';

class CheckboxButton extends React.Component {

    render(){
        return(
            <div id="ck-button">
                <label>
                    <input type="checkbox" value="1" hidden/><span>{this.props.text}</span>
                </label>
            </div>
        )
    }
}
export default CheckboxButton;

CSS 是:


 
 #ck-button {
     margin:3px;
     background-color: transparent;
     overflow:auto;
     float:left;
     box-shadow: 0px 8px 18px 0 rgba(0,0,0,0.14);
     border-radius: 21px;
     border: solid 2px #ff7255;

 }
 
 #ck-button label {
     float:left;
     width: fit-content;
     padding: 1px 10px 0px 10px;
     font-family:Source Sans Pro;
     font-size: 18px;

 }
 
 #ck-button label span {
    text-align:center;
     padding:0px 0px;
     display:block;
     color: #ff7255;
 }
 
 #ck-button label input {
     position:absolute;
     top:-20px;
 }
 
 #ck-button input:checked + span {
     background-color:#ff7255;
     color:#fff;
     font-weight: bold;
 }

知道如何将整个按钮变成橙色吗?

最佳答案

根据经验,创建自定义复选框时始终将样式应用于可单击元素。 (在您的情况下span)

#ck-button {
  margin: 3px;
  background-color: transparent;
  overflow: auto;
  float: left;
  position: relative;
}

#ck-button span {
  box-shadow: 0px 8px 18px 0 rgba(0, 0, 0, 0.14);
  border-radius: 21px;
  border: solid 2px #ff7255;
  padding: 5px 10px;
  text-align: center;
  display: inline-block;
  color: #ff7255;
  user-select: none;
}

#ck-button label input {
  position: absolute;
  top: -20px;
}

#ck-button input:checked+span {
  background-color: #ff7255;
  color: #fff;
  font-weight: bold;
}
<label id="ck-button">
   <input type="checkbox" value="1" hidden/>        <span>text</span>
  </label>

关于javascript - 自定义复选框标签不合适,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63718393/

相关文章:

javascript - React Native 在哪里存储生成的 javascript 包?

javascript - 递归搜索对象中的属性

JavaScript JSON 解析返回未定义

javascript - 针对多项选择题

javascript - 就页面加载速度而言,使用外部 css 和 js 的真正好处是什么?

reactjs - React 中不稳定的视差。最佳实践是什么?

javascript - 媒体屏幕和最小宽度 : 965px and max-width: 965px

html - 如何使用 li::before 将 html 列表中的文本与自定义元素符号对齐

reactjs - 未捕获的 TypeError : dispatch(. ..).then 不是一个函数

javascript - 如何在 Express 服务器上启动 Webpack 构建