### 1.71 not(X)否定伪类选择器
**定义:**否定伪类选择器,用于选择不满足某些条件的元素,**意思:不是(X)或除了(X)**
**X代表的意思:**
1.标签元素 2.class类名 3.除了not外的其他伪类元素。
**特别注意:**
选择器名或伪类:not(X),如果在:not(X)前面加一个空格,则表示该选择器或伪类的子元素;
#### 列子:
**1.not(X)前面不加空格**
html代码
~~~
<section>
<p>P标签,:not(x)前面不加空格</p>
<span>span标签,:not(x)前面不加空格</span>
<p>P标签,:not(x)前面不加空格</p>
</section>
~~~
css
~~~
section:not(p) {
color: rgb(40,170,220);
}//not(X)前面不加空格,则把section内所有的子元素都添加颜色。
~~~
效果:
![](https://box.kancloud.cn/2eac13d66a8d91888a0c1df66b3ecfe6_252x126.png)
**2.not(X)前面加空格**
html代码
~~~
<section>
<p>P标签,:not(x)前面加空格</p>
<span>span标签,:not(x)前面加空格</span>
<p>P标签,:not(x)前面加空格</p>
</section>
~~~
css
~~~
section :not(p) {
color: rgb(40,170,220);
}
~~~
效果
![](https://box.kancloud.cn/1ba44dedcedeaae43f085c1ad8e235c6_257x122.png)
#### 注:以下示例均是:not前面不加空格的。
#### **一、只有:not(X),无其他伪类**
**列子1:**X用class类名显示
html代码:
~~~
<ul>
<li class="test1">li标签,test1</li>
<li class="different">li标签,different</li>
<li class="test2">li标签,test2</li>
</ul>
~~~
css:
~~~
li:not(.different) {
font-size: 40px;
}//li标签中除了class等于different字体大小是40px
~~~
效果:
![](https://box.kancloud.cn/956041ba0469ec1f2693d2c84f6f9346_431x167.png)
<br/>
<br/>
<br/>
**例子2:**X显示伪类
html代码:
~~~
<div class="div1">
<ul>
<li class="test1">li标签,test1</li>
<li class="different">li标签,different</li>
<li class="test2">li标签,test2</li>
<li class="test3">li标签,test3</li>
<li class="test4">li标签,test4</li>
</ul>
</div>
~~~
css:
~~~
.div1 li:not(:last-child){
color:blue;
}//div1内li标签除了最后一个,其他的显示蓝色。
~~~
效果:
![](https://box.kancloud.cn/38753d0781c6e73cb4bf2ea3485f71f3_175x120.png)
<br/>
<br/>
<br/>
**例子3:**一行css代码中 有2个not()是且关系,
html代码:
~~~
<div class="div1">
<ul>
<li class="test1">li标签,test1</li>
<li class="different">li标签,different</li>
<li class="test2">li标签,test2</li>
<li class="test3">li标签,test3</li>
<li class="test4">li标签,test4</li>
</ul>
</div>
~~~
css:
~~~
.div1 li:not(:last-child):not(.test2){
color: red;
}//div1内li标签中除了最后一个和class="test2"的其他显示红色
~~~
效果:
![](https://box.kancloud.cn/f575171789bfa48e09b518e10e28ea21_173x128.png)
<br/>
<br/>
<br/>
**例子4:**2行css代码,都有not()伪类,就是讲列子2和列子3结合产生效果
html代码
~~~
<div class="div1">
<ul>
<li class="test1">li标签,test1</li>
<li class="different">li标签,different</li>
<li class="test2">li标签,test2</li>
<li class="test3">li标签,test3</li>
<li class="test4">li标签,test4</li>
</ul>
</div>
~~~
css代码
~~~
.div1 li:not(:last-child):not(.test2){
color: red;
}
.div1 li:not(:last-child){
color:blue;
}
//意思:先执行第一行css,除了最后一个和class="test2"的其他显示红色,则test2和test4没有颜色,
第二行css,是执行第一行代码剩下的li标签(test2和test4)除了最后一行显示蓝色,则test2显示蓝色。
~~~
效果
![](https://box.kancloud.cn/b206c656888d71c585ae491ee82cd52c_229x152.png)
<br/>
<br/>
<br/>
#### **二、:not(X)和first-child,last-child,nth-child(n),nth-of-type(n)等表示位置伪类一起运用,**
**列子1.**一行css,位置伪类和:not(X),是且的关系,条件需要一起达成。位置和:not(X)不指的是同一个元素或标签,则前后没有区别,如果位置和:not(X)指的是同一个元素或标签,则执行不了效果。
html代码:
~~~
<div class="div1">
<ul>
<li class="test1">li标签,test1</li>
<li class="test2">li标签,test2</li>
</ul>
</div>
~~~
<br/>
<br/>
* 位置伪类在前
css:
~~~
.div1 li:first-child:not(.test2){
font-size: 40px;
}//第一个且不是test2的执行书写
~~~
效果:
![](https://box.kancloud.cn/cd67baccc6ed267e877f77b1d019eb14_320x85.png)
<br/>
<br/>
<br/>
* 位置伪类在后
css:
~~~
.div1 li:not(.test2):first-child{
font-size: 40px;
}
~~~
效果:
![](https://box.kancloud.cn/cd67baccc6ed267e877f77b1d019eb14_320x85.png)
<br/>
<br/>
* . 位置伪类和not()指同一个元素
css:
~~~
.div1 li:not(.test1):first-child{
font-size: 40px;
}
~~~
效果:
![](https://box.kancloud.cn/5ea09de9cb71ba25724fb45b213be980_235x57.png)
<br/>
<br/>
<br/>
**例子2:**两行代码。一行是not,一行是位置伪类,没有前后关系,位置伪类的选择器执行该位置伪类的所有css样式,跟not没有关系。
html代码:
~~~
<div class="div1">
<ul>
<li class="test1">li标签,test1</li>
<li class="test2">li标签,test2</li>
<li class="different">li标签,different</li>
<li class="test3">li标签,test3</li>
<li class="test4">li标签,test4</li>
</ul>
</div>
~~~
css代码:
~~~
.div1 li:not(.test2){
font-size: 40px;
}
.div1 li:nth-child(2){
color: red;
}
~~~
效果:
![](https://box.kancloud.cn/e88be961b6cf4b86e3014df058b9a561_325x235.png)
<br/>
<br/>
<br/>
#### **三、:not(X)和:before,:after伪类一起**
**列子1:**一行css,是先后执行,before和after在not()后面,如放在前面不起效果。
html代码
~~~
<ul>
<li class="test1">li标签,test1</li>
<li class="different">li标签,different</li>
<li class="test2">li标签,test2</li>
</ul>
~~~
css代码
~~~
li:not(.different):before {
content:"";
display: inline-block;
width: 10px;
height: 10px;
background:red;
}//先执行not(.different),则剩下test1和test2,再执行:before,则将剩下的test1和test2前面加上红色方框。
~~~
效果:
![](https://box.kancloud.cn/0f1b93b8dec0fe4903fc945b08f4d3fb_227x71.png)
<br/>
<br/>
<br/>
**列子2:**两行css,一行是not,一行是before或after伪类,没有前后关系,before或after伪类的选择器执行before或after样式,跟not(X)没有关系。
html代码
~~~
<ul>
<li class="test1">li标签,test1</li>
<li class="different">li标签,different</li>
<li class="test2">li标签,test2</li>
</ul>
~~~
css
~~~
.div1 li:not(.different){
font-size: 40px;
}
.div1 li:before {
content:"";
display: inline-block;
width: 10px;
height: 10px;
background:red;
}
~~~
效果:
![](https://box.kancloud.cn/8d518e081c4775d6b35a446b70709d89_396x146.png)
- 布局
- display:table布局
- display:flex弹性布局
- html
- 1.1关于文字小技巧
- 1.2加载
- 1.3苹果和安卓样式兼容问题
- 1.4结构技巧
- 1.5兼容ie7,ie8技巧
- css
- 1.1内容不够,页面固定在底部
- 1.2 css属性书写顺序
- 1.3font和line-height之CSS代码书写顺序不同,导致显示效果不一样
- 1.4 flex设置成1和auto有什么区别
- 1.5带三角形的对话框
- 1.6css选择器
- 1.6.1通用兄弟选择器E ~ F
- 1.6.2相邻兄弟选择器E + F
- 1.6.3 CSS3结构选择器
- 1.6.4 属性选择器
- 1.6.7 class^=,class*= ,class$= 的含义
- 1.7伪类
- 1.7.1:not(s)
- 1.9inherit和 initial
- 2.0 css技巧
- css3
- 1.2 背景background
- 1.3 transform
- 1.3.1移动translate
- 1.3.2缩放scale
- 1.3.3旋转rotate
- 1.3.4扭曲skew
- 1.4 Transition
- 1.5 animate
- 1.6 calc()
- 1.7 Gradients渐变
- 1.8 backface-visibility
- 1.9 text-size-adjust
- sass知识点
- 1.1sass写法转化
- 1.1.1 sass的转换写法
- 1.2 & 嵌套写法
- 1.2变量
- 1.2.1 默认值
- 1.2.2 全局变量和局部变量
- 1.2.3 嵌套
- 1.2.4 伪类选择器
- 1.2.5变量用井号花括号包裹
- 1.2.6 多个变量一起声明
- 1.3混合宏
- 1.3.1不带参数的混合宏
- 1.3.2传一个不带值的参数
- 1.3.3传多个不带值的参数
- 1.3.4传一个参数的值
- 1.3.5传多个参数的值
- 1.3.6参数变量名后面加...(省略号)
- 1.4文件导入
- 1.5继承@extend
- 1.6占位符%
- 1.7混合宏VS继承VS占位符
- 1.8 @media在sass中写法
- 1.9 @content的作用
- sass基本运算
- 1.1[Sass运算]加法
- 1.2[Sass运算]减法
- 1.3[Sass运算]乘法
- 1.4[Sass运算]除法
- sass函数
- 1.1 @if函数
- 1.2for函数
- 1.3 while函数
- 1.4 each循环
- 函数
- 1.1一些函数的意思
- 1.2if else函数
- 1.3 i++和++i的区别
- 1.4for函数
- UI设计规则
- 1.1字体
- 1.2尺寸
- 1.3 注意点
- 1.4 界面设计注意点