带有 CSS ::before 的自定义复选框 - 在 Firefox/Edge 中不起作用

罗宾·齐格蒙德

我在尝试让项目跨浏览器工作时遇到了一个非常烦人的 CSS 问题(不关心 IE,这只是一个业余项目,但至少让它在所有现代浏览器上工作会很好) . 它涉及一些我希望应用自定义样式的复选框 - 我知道你不能用标准 HTML 做太多事情,<input type="checkbox">所以我做了很多地方推荐的事情,并使用了一个::before伪元素。我对 Chrome 中的结果很满意。想象一下,我的惊讶,当我发现我的自定义复选框,根本不显示在所有的Firefox!

我已经玩了几个小时,并将它剥离到问题的根源 - 这与复选框本身有关,而不是与它交互的任何其他 CSS。这是最低限度的示例:

input[type="checkbox"] {
    visibility: hidden;
}

input[type="checkbox"]::before {
    visibility: visible;
    content: "";
    display: block;
    width: 1.1em;
    height: 1.1em;
    color: #eddc23;
    border: 1px solid #eddc23;
    background-color: #540123;
    border-radius: 35%;
    line-height: 1.27;
    text-align: center;
    cursor: pointer;
}

input[type="checkbox"]:checked::before {
    content: "\2713";
}
<input type="checkbox">

这应该显示一个深红色复选框,选中时带有黄色勾号。它可以在 Chrome 和 Opera 上完美运行,但在 Firefox 或 Edge 上根本无法运行。(这是一个相同CodePen 链接,以防 Stack Overflow 代码段以某种方式表现出不同的行为)。CSS 不是我的强项之一,尽管进行了几个小时的试验和谷歌搜索,我还是很困惑。

希望得到任何指示,不仅是关于如何让这个跨浏览器工作,而且是关于为什么它不能在 FF/Edge 上工作(检查 Firefox 上的元素根本没有显示::before伪元素的迹象。我也排除它与空content属性有关,因为将其更改为真实文本无法使其在相关浏览器中可见)。

尼沙尔沙阿

有时使用标签可以解决此类问题

input[type="checkbox"] {
  display: none;
}

span {
  visibility: visible;
  content: "";
  display: block;
  width: 1.1em;
  height: 1.1em;
  color: #eddc23;
  border: 1px solid #eddc23;
  background-color: #540123;
  border-radius: 35%;
  line-height: 1.27;
  text-align: center;
  cursor: pointer;
}

input[type="checkbox"]:checked + label span::before {
  content: "\2713";
}
<input type="checkbox" id="checkbox">
<label for="checkbox">
  <span></span>
</label>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

CSS:自定义复选框不起作用

来自分类Dev

自定义CSS3复选框在Firefox或IE上不起作用

来自分类Dev

网格中的CSS自定义复选框-无法删除原始复选框

来自分类Dev

带有复选框的 Android 自定义 ListView 搜索,过滤器不起作用

来自分类Dev

带有自定义CSS复选框的jQuery验证

来自分类Dev

CSS自定义复选框不会隐藏:after和:before元素

来自分类Dev

在Android中带有复选框的自定义列表视图

来自分类Dev

带有标签的纯 CSS 复选框不起作用

来自分类Dev

自定义CSS复选框仅在标签具有“ for”属性时有效

来自分类Dev

如何在css中创建自定义复选框

来自分类Dev

自定义复选框不起作用

来自分类Dev

具有MVVM模式的WPF中的复选框和自定义列表

来自分类Dev

带有提交按钮的复选框不起作用

来自分类Dev

ng要求的复选框,自定义值在最新的AngularJS中不起作用

来自分类Dev

自定义复选框在Windows上的Chrome中不起作用

来自分类Dev

复选框jQuery .on()在带有Symfony 2.3的SonataAdminBundle 2.3中不起作用

来自分类Dev

复选框jQuery .on()在带有Symfony 2.3的SonataAdminBundle 2.3中不起作用

来自分类Dev

单选按钮中的自定义CSS无法正常工作,显示复选框而不是单选按钮

来自分类Dev

如何从Android中的活动中选择自定义列表视图中的所有复选框

来自分类Dev

自定义 CSS 在 Laravel 中不起作用

来自分类Dev

使用自定义CSS复选框的Boostrap折叠

来自分类Dev

Jquery 验证自定义 css 复选框

来自分类Dev

CSS中带有“ :: before”的bug(?)

来自分类Dev

CSS中带有“ :: before”的bug(?)

来自分类Dev

自定义复选框和自定义单选框的CSS

来自分类Dev

高级自定义字段复选框查询不起作用

来自分类Dev

自定义复选框,更改 :hover 和 :checked。不起作用

来自分类Dev

CSS复选框样式不起作用

来自分类Dev

CSS复选框事件不起作用

Related 相关文章

  1. 1

    CSS:自定义复选框不起作用

  2. 2

    自定义CSS3复选框在Firefox或IE上不起作用

  3. 3

    网格中的CSS自定义复选框-无法删除原始复选框

  4. 4

    带有复选框的 Android 自定义 ListView 搜索,过滤器不起作用

  5. 5

    带有自定义CSS复选框的jQuery验证

  6. 6

    CSS自定义复选框不会隐藏:after和:before元素

  7. 7

    在Android中带有复选框的自定义列表视图

  8. 8

    带有标签的纯 CSS 复选框不起作用

  9. 9

    自定义CSS复选框仅在标签具有“ for”属性时有效

  10. 10

    如何在css中创建自定义复选框

  11. 11

    自定义复选框不起作用

  12. 12

    具有MVVM模式的WPF中的复选框和自定义列表

  13. 13

    带有提交按钮的复选框不起作用

  14. 14

    ng要求的复选框,自定义值在最新的AngularJS中不起作用

  15. 15

    自定义复选框在Windows上的Chrome中不起作用

  16. 16

    复选框jQuery .on()在带有Symfony 2.3的SonataAdminBundle 2.3中不起作用

  17. 17

    复选框jQuery .on()在带有Symfony 2.3的SonataAdminBundle 2.3中不起作用

  18. 18

    单选按钮中的自定义CSS无法正常工作,显示复选框而不是单选按钮

  19. 19

    如何从Android中的活动中选择自定义列表视图中的所有复选框

  20. 20

    自定义 CSS 在 Laravel 中不起作用

  21. 21

    使用自定义CSS复选框的Boostrap折叠

  22. 22

    Jquery 验证自定义 css 复选框

  23. 23

    CSS中带有“ :: before”的bug(?)

  24. 24

    CSS中带有“ :: before”的bug(?)

  25. 25

    自定义复选框和自定义单选框的CSS

  26. 26

    高级自定义字段复选框查询不起作用

  27. 27

    自定义复选框,更改 :hover 和 :checked。不起作用

  28. 28

    CSS复选框样式不起作用

  29. 29

    CSS复选框事件不起作用

热门标签

归档