【问题标题】:::before with input in Firefox [duplicate]::在Firefox中输入之前[重复]
【发布时间】:2016-10-05 20:11:48
【问题描述】:

我正在尝试使用 CSS 伪类 ::before 在输入标记之前放置一些内容。它适用于 Chrome,但不适用于 Firefox。 Firefox 似乎有什么问题?

这是一个sn-p:

input::before {
	content: '';
	display: block;
	width: 13px;
	height: 13px;
	border-radius: 50%;
	box-shadow: 0px 0px 5px #9F0002 inset;
}
<input type="radio" name="gender" class="radio" value="male">male
<input type="radio" name="gender" class="radio" value="female">female

...结果如下。 Chrome 运行良好:

但 Firefox 没有变化:

【问题讨论】:

标签: css google-chrome firefox pseudo-element


【解决方案1】:

根据specification.

作者使用 :before 和 :after 伪元素指定生成内容的样式和位置。正如它们的名字所示,:before 和 :after 伪元素指定了元素文档树内容之前和之后的内容位置。 'content' 属性与这些伪元素一起指定插入的内容。

:before 和:after 应该只适用于可以作为内容容器的元素。 &lt;input&gt; 不能包含任何内容,因此它不应该支持那些伪元素。 Chrome 支持是因为它不遵循规范(或错误?)。

【讨论】:

  • 换句话说,Chrome 有自己的规则。感谢您提供此信息!
  • 有趣的是 Safari 在此复制 chrome 并显示输入的伪元素。
  • @Levidps 这个问题可能来自 Webkit,Chrome 的引擎是从 Webkit 分叉的
猜你喜欢
  • 2017-04-18
  • 2014-11-07
  • 1970-01-01
  • 1970-01-01
  • 2015-07-30
  • 2011-06-02
  • 1970-01-01
  • 2020-10-05
  • 2012-11-10
相关资源
最近更新 更多