<!DOCTYPE html>
<html>
<head>
<style>
.iSerror:not(.usermodel) input{
border:1px solid red
}
</style>
</head>
<body>
<p class="iSerror">
<input>
<p class="usermodel">
<input>
</p>
</p>
</body>
</html>
结果
为什么usermodel下面的input border会变成红色呢
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
.iSerror:not(.usermodel) input{
border:1px solid red
} 先解释一下:.iSerror:not(.usermodel)这里只是排除了跟.iSerror的同级.usermodel,而你的结构中,.usermodel是.iSerror的子集,改成:
.iSerror p:not(.usermodel) input{
border:1px solid red
}试下
你是没给
.usermodel直接添加样式 但是它自动继承了父类 即.iSerror的样式这个根本就用不到
:not()啊……如果用emmet来写的话,
就是
.iSerror>input+.usermodel>input。所以嘞,找第一个
<input>就用.iSerror>input;找第二个<input>用.usermodel>input就好啦。