【发布时间】:2022-01-18 05:49:30
【问题描述】:
我是 CSS 新手,下面的例子让我很困惑。所以我想更好地了解。
这就是我所做的:
HTML:
<select id="dropdown" required>
<option disabled selected value>Choose current role</option>
<option class="option">Student</option>
<option class="option">Full Time Job</option>
<option class="option">Prefer Not to Say</option>
<option class="option">Others</option>
</select>
CSS:
body: {color: white;}
在网页上点击任何选项之前和之后,选择栏上的文字颜色都是白色的。
我尝试使用以下语法更改文本颜色,但无济于事:
#dropdown {
padding-right: 100%;
}
#dropdown:focus:after {
color: black;
}
仅当我取出#dropdown 声明时才有效:
#dropdown:focus:after {
color: black;
}
但我想保留创建填充的#dropdown 声明。有没有其他方法可以完成这项工作?
为什么它不能同时用于 #dropdown 和 #dropdown:focus:after 声明?
【问题讨论】:
-
::after是一个伪元素,代表所选元素的最后一个子元素。 -
您可以使用 javascript 在您的 event 上查找类似于模糊或更改的 DOM 事件。然后使用
event.target.classList.add('colored_class')之类的东西添加一个类到你想要的元素。