css 选择器not问题

发布于 2022-09-04 12:22:31 字数 517 浏览 32 评论 0

<!DOCTYPE html>
<html>
<head>
<style>
.iSerror:not(.usermodel) input{
  border:1px solid red
}
</style>
</head>
<body>
<div class="iSerror">
 <input>
 <div class="usermodel">
  <input>
</div>
</div>

</body>
</html>

结果
clipboard.png 为什么usermodel下面的input border会变成红色呢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

情感失落者 2022-09-11 12:22:31

.iSerror:not(.usermodel) input{
border:1px solid red
} 先解释一下:.iSerror:not(.usermodel)这里只是排除了跟.iSerror的同级.usermodel,而你的结构中,.usermodel是.iSerror的子集,改成:
.iSerror div:not(.usermodel) input{
border:1px solid red
}试下

最后的乘客 2022-09-11 12:22:31
.iSerror:not(.usermodel) input{
//这里的.iSerror:not(.usermodel), 指的是在拥有iSerror类的标签,同时不具有.usermodel这个类
  border:1px solid red
}
.iSerror div:not(.usermodel) input{
  border:1px solid red
}
//html
<div class="iSerror">
    <div>
        //这个就会变红色
        <input>
    </div>
     
     <div class="usermodel">
      <input>
    </div>
</div>
铜锣湾横着走 2022-09-11 12:22:31

你是没给.usermodel直接添加样式 但是它自动继承了父类 即.iSerror的样式

不语却知心 2022-09-11 12:22:31

这个根本就用不到:not()啊……

如果用emmet来写的话,

<div class="iSerror">
    <input>
    <div class="usermodel">
        <input>
    </div>
</div>

就是.iSerror>input+.usermodel>input

所以嘞,找第一个<input>就用.iSerror>input;找第二个<input>.usermodel>input就好啦。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文