我在输入后加上 *,我想在input:valid
和invalid
中选择这个来改变颜色,但是这个CSS不起作用为什么?
form::after {
content: "*";
}
#fname:invalid~::after {
background: red;
border-color: yellow;
}
#fname:valid~::after {
background: rgb(3, 183, 168);
border-color: rgb(9, 9, 0);
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form action="/action_page.php" id="frm">
<label for="fname">First name:</label><br>
<input required type="text" id="fname" value=""><br><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
2条答案
按热度按时间soat7uwm1#
您可以使用:has()(在layout.css.has-selector.enabled标志后面的Firefox中支持):
或者简单地将
<form>
中的:after
替换为<span>*</span>
:hvvq6cgz2#
将
::after
替换为span