css ONLY样式复选框和单选按钮

标签 css checkbox styles

我最近一直在为一个大元素设置主题,我一直在使用 icheck.js 来设置我的复选框的样式,直到我意识到它对触摸的 react 有多慢。

我意识到要走的路是 css 样式,但是据我所见,复选框需要靠近标签或位于标签内。

每个复选框的标签都有不同的宽度和/或高度,并且复选框需要向右浮动,因此彼此之间有一些可变的距离。

有什么想法或任何类型的脚本可以在触摸设备上运行得超快吗?

最佳答案

您可以使用 HTML/CSS 和一些 JS 来完成,但这有点棘手,而且不是很干净。 首先,您需要用另一个 HTML 元素(div 或其他)包裹您的复选框并隐藏您的复选框元素(显示:无)。

然后,风格化包装元素以适应您的自定义复选框,具有未选中状态(默认)和选中状态(使用类)。

最后,使用一些 JS 来管理对包装器元素的点击。使用 jQuery 工作 fiddle (因为我很懒):

$('.wrapperCheckbox').click(function () {
var checkbox = $(this).find('input[type="checkbox"]');
var checked;
$(this).toggleClass('checked');
if(checkbox.is(':checked')){
    checked = false;
}
else {
    checked = true;
}

checkbox.attr('checked', checked);        

});

http://jsfiddle.net/49Xg2/2/

如您所见,它只是将包装器插入到它的子复选框中,而且它肯定比为此使用库更轻。请注意,我没有测试它,所以它可能是错误的,但它向您展示了如何去做。

我知道你不想使用 JS,但你不能只使用 HTML/CSS 100% 在所有主流浏览器上工作的结果。

关于css ONLY样式复选框和单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20786017/

相关文章:

android - LinearLayout 没有设置所需的 layout_height 属性

css - 元素符号不会在 Firefox 中消失

javascript - 使用 JQuery 获取所有样式属性。基本上我想要一个 getComputedStyle() 的等价物,我不想处理跨浏览器的东西

html - 如何使用 CSS 和 HTML 使导航栏居中

html - 如何在不影响响应设备的情况下在 div 的底部进行倾斜

javascript - 根据先前的复选框选择禁用/启用下一个复选框 - jQuery

html - 如何将我的复选框与 css 对齐?

css - SCSS : Inverting/Negating Variable Based on calc()

html - 无法向右移动复选框

javascript - MVC 中的 JQuery - 使用 getJson 将表单数据作为数组发送