css - :before with an attribute selector

标签 css forms css-selectors

我有以下 html 表单

<div>
    <p>Field1</p>
    <input type="text" name="fld_one" id="fld_one" value="" />
</div>
<div>
    <p>Field2</p>
    <input type="text" name="fld_two" id="fld_two" required value="" />
</div>

我想像这样使用 CSS 标记必填字段

div input[required]:before { color: #f00; content: "*"; }

然而,此 CSS 行并未在文档中做出可见的更改。

作为引用,我能够使用以下内容修改所有必填字段:

div input[required] { background-color: #000; }

TL;DR - :before 伪类可以与属性选择器一起使用吗?如果是,怎么办?

最佳答案

:before 是伪元素,不是伪类。它可以与属性选择器一起使用,但不能与某些浏览器的 input 元素一起使用,因为它是一个替换元素。 (一些浏览器,因为它是 not very well-defined 它们是否应该工作,尽管大多数浏览器倾向于“否”。)

您的属性选择器起作用的原因是您将样式应用于 input 元素本身,它在每个浏览器中都一致地起作用。

关于css - :before with an attribute selector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12411761/

相关文章:

javascript - 是否可以在 CSS 中使用三元运算符?

javascript - 单击日期选择器外部的已知容器时,有没有一种方法可以防止剑道日期选择器日历弹出窗口关闭?

jquery - 使用 jQuery 将复选框值放入隐藏输入中

ruby - 如何使用具有随机生成的用户名和密码输入名称的表单登录

css - 启用 HTML 5 表单验证但禁用 'standard' 错误消息

css - Bootstrap 2.x 按钮未在对话框中居中对齐

html - 使用关键帧将鼠标悬停在不同元素上时让 SVG 元素动画化

css - Bootstrap CSS 类通配符

html - 表格中的背景颜色不显示空单元格

html - CSS:选择 previous sibling 姐妹