您现在的位置:首页 >> 前端 >> 内容

CSS3基础之选择器知识讲解

时间:2018/7/11 14:48:25 点击:

  核心提示:一、属性选择器1、E[attr]表示存在attr属性,但没有确定任何属性值;2、E[attr=val]表示属性值完全等于val;3、E[attr*=val]表示的属性值里包含val字符并且在任意位置;...

一、属性选择器

1、E[attr]表示存在attr属性,但没有确定任何属性值;

CSS3基础之选择器知识讲解

2、E[attr=val]表示属性值完全等于val;

CSS3基础之选择器知识讲解

3、E[attr*=val]表示的属性值里包含val字符并且在“任意”位置;

CSS3基础之选择器知识讲解

4、E[attr^=val]表示的属性值里包含val字符并且在“开始”位置;

CSS3基础之选择器知识讲解

5、E[attr$=val]表示的属性值里包含val字符并且在“结束”位置,效果与E[attr^=val]相反;

二、伪类选择器

1、结构伪类

E:first-child第一个子元素:向上找到E的父元素,父元素的第一个子元素若为E,则实现选择效果,如果第一个不为E,则没有筛选到任何元素。

E:last-child最后一个子元素

E:nth-child(n)第n个子元素,nth-child选择器在计算子元素是第n个元素,是连同所有父元素中所有子元素一起计算的,确定位置是要包含所有元素;

E:nth-last-child(n)同E:nth-child(n)相似,只是倒着计算;

n遵循线性变化,其取值0、1、2、3、4、...但是当n<=0时,选取无效。

n可是多种形式:nth-child(2n+0)、nth-child(2n+1)、nth-child(-1n+3)等;

注意:在原来的基础上添加了一个元素,原来的结构伪类会因为筛选不到元素造成样式失效或者样式混乱,例如:

CSS3基础之选择器知识讲解

CSS3基础之选择器知识讲解

为了避免上述情况,可以用E:nth-of-type(n)

E:nth-of-type(n):和E:nth-child(n)非常类似,不同的是它只计算父元素中指定的E类型的子元素,上面的例子就可以直接利用这个选择器实现,它可以只选中p元素。

E:empty选中没有任何子节点的E元素;

2、目标伪类

E:target结合锚点进行使用,URL后面跟锚点#,指向文档内某个具体的元素。这个被链接的元素就是目标元素(target element),:target选择器用于选取当前活动的目标元素;

/*给没有.special的li元素设置样式.*/

li:not(.special){

background-color:red;

}

三、伪元素选择器

E::first-letter文本的第一个单词或字(如中文、日文、韩文等),常见的效果为首字母下沉;

E::first-line文本第一行,不管浏览器放大缩小,始终是第一行;

E::selection可改变选中文本的样式;

重点:E::before、E::after默认是一个行内元素,需要转换成块元素

E:after、E:before在旧版本里是伪元素,CSS3的规范里“:”用来表示伪类,“::”用来表示伪元素,但是在高版本浏览器下E:after、E:before会被自动识别为E::after、E::before,这样做的目的是用来做兼容处理。

":"与"::"区别在于区分伪类和伪元素

注意:after、before与content 一起使用!!!

Selection:selection 为选中的字体设置样式,但是不支持 font-size

四、对象文字占位

::placeholder伪元素用于控制表单输入框占位符的外观,它允许开发者/设计师改变文字占位符的样式,默认的文字占位符为浅灰色。当表单背景色为类似的颜色时它可能效果并不是很明显,那么就可以使用这个伪元素来改变文字占位符的颜色。

需要注意的是,除了Firefox是::[prefix]placeholder,其他浏览器都是使用::[prefix]input-placeholder

Firefox支持该伪元素使用text-overflow属性来处理溢出问题。

Tags:CS SS S3 3基 
作者:网络 来源:qq_3879503