我正在尝试使用以下方式设置复选框的样式:
<input type="checkbox" style="border:2px dotted #00f;display:block;background:#ff0000;" />
但是没有应用样式。该复选框仍显示其默认样式。我如何给它指定的样式?
更新:
下面的答案引用了 CSS 3 广泛可用之前的状态。在现代浏览器(包括 Internet Explorer 9 和更高版本)中,使用您喜欢的样式创建复选框替换更简单,而无需使用 JavaScript。
以下是一些有用的链接:
值得注意的是,根本问题没有改变。您仍然不能将样式(边框等)直接应用于复选框元素,并让这些样式影响 HTML 复选框的显示。然而,改变的是现在可以隐藏实际的复选框并用您自己的样式元素替换它,只使用 CSS。特别是,因为 CSS 现在有一个广泛支持的:checked选择器,您可以使您的替换正确地反映框的选中状态。
:checked
较早的答案
这是一篇关于样式复选框的有用文章。基本上,该作者发现它因浏览器而异,而且许多浏览器总是显示默认复选框,无论您如何设置它。所以真的没有一个简单的方法。
不难想象一种解决方法,您可以使用 JavaScript 在复选框上叠加图像,然后单击该图像会导致真正的复选框被选中。没有 JavaScript 的用户会看到默认复选框。
编辑添加:这是一个为您执行此操作的好脚本;它隐藏了真正的复选框元素,将其替换为样式跨度,并重定向点击事件。