HTML:仅使用 CSS 修改复选框/单选样式

标签 html forms css input

我知道这种问题至少被问过 100 次,但这里是我所说的 仅 CSS 的意思:

我想用 CSS 更改复选框/单选按钮的样式,而不需要更改这些元素的标记(将它们放入容器/添加标签元素等)。我在问是否可以设计 <input type"checkbox"/>不向其中添加任何新的 html。

这样的 CSS 可以添加到任何现有的页面并起作用。我发现的所有解决方案都需要某种给定类型的标记,如果您只是将它们添加到带有表单的某个页面,它就不会起作用,因为它们本身可能没有用于输入的标签或容器。

我的意思是修改 - 更改框的样式(主要 css,如边框半径、颜色、边框、阴影)和更改检查样式(颜色、形状等)。

我知道 JS 可以添加必需的标记 - 但这不是解决方案,它是解决方法,我不是在寻找它。

最佳答案

不是跨浏览器的解决方案

input[type="checkbox"]{
    width: 30px;
   height: 30px;
   margin: 0;
   padding: 0;
  -moz-appearance: none; 
   -webkit-appearance: none;
   -ms-appearance: none; 
   -o-appearance: none;
   appearance: none;
    outline: none;    
}
input[type=checkbox]:after {    
    content: "";
    width: 30px;
    height: 30px;   
    border: 2px solid #ccc;
    margin: 0;
    vertical-align: top;    
    display: inline-block;
    border-radius: 50%;    
}
input[type=checkbox]:checked:after{
    background: #ccc;
}
<input type="checkbox" />

关于HTML:仅使用 CSS 修改复选框/单选样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30286260/

相关文章:

javascript - 无法使用 jquery 从 keyup 上的输入文本中获取值

html - 如何垂直居中CSS三 Angular 形

javascript - 如何使用 JQuery 执行嵌套的 for-each 循环以获取特定的 li 元素?

css - HTML 不显示 2 列

html - 如何将大图像放入小div中

javascript - jQuery 在点击时自动添加文本字段

javascript - 在 div 上设置文本省略号后,我没有看到 '...'

javascript - 如何在 jquery 中创建动态多级下拉列表

javascript - 使用 CSS 覆盖通过 JS 添加的内联样式

Javascript 的 getElementById 在我的循环中不起作用