css的复合选择器

html-css051

css的复合选择器,第1张

在CSS中,可以根据选择器的类型把选择器分为基础选择器和复合选择器,复合选择器是建立在基础选择器之上,对基本选择器进行组合形成的。

复合选择器可以更准确、更高效的选择目标元素(标签)。

复合选择器是由两个或多个基础选择器,通过不同的方式组合而成的。

常用的复合选择器包括:后代选择器、子选择器、并集选择器、伪类选择器等等。

后代选择器又称为包含选择器,可以选择父元素里面的子元素。其写法就是把外层标签写在前面,内层标签写在后面,中间用空格分隔。当标签发生嵌套时,内层标签就成为外层标签的后代。

语法:

元素1 元素2 {样式声明}

上述语法表示选择元素1里面的所有元素2(后代元素)。

例如:

元素1和元素2中间用空格隔开。

元素1是父级,元素2是子级,最终选择的是元素2。

元素2可以是儿子,也可以是孙子等,只要是元素1的后代即可。

元素1和元素2可以是任意基础选择器。

子元素选择器(子选择器)只能选择作为某元素的最近一级子元素。简单理解就是选亲儿子元素。

语法:

上述语法表示选择元素1里面的所有直接后代(子元素)元素2。

例如:

元素1和元素2中间用大于号(>)隔开。

元素1是父级,元素2是子级,最终选择的是元素2。

元素2必须是亲儿子,其孙子、重孙之类都不归他管。也可以叫他亲儿子选择器。

并集选择器、伪类选择器等等。

并集选择器可以同时选择多组标签,同时为他们定义相同的样式。通常用于集体声明。

并集选择器是各选择器通过英文逗号(,)连接而成,任何形式的选择器都可以作为并集选择器的一部分。

语法:

上述语法表示选择元素1和元素2。

元素1和元素2中间用逗号隔开。

逗号可以理解为和的意思。

并集选择器通常用于集体声明。

伪类选择器用于向某些选择器添加特殊的效果,比如给链接添加特殊效果,或选择第1个,第n个元素。

伪类选择器书写最大的特点是用冒号(:)表示,比如:hover、:first-child。

因为伪类选择器很多,比如有链接伪类、结构伪类等,所以看这里先给大家讲解常用的链接伪类选择器。

1.为了确保生效,请按照 LVHA 的循顺序声明::link-:visited-:hover-active。

2.因为a链接在浏览器中具有默认样式,所以我们实际工作中都需要给链接单独指定样式。

二链接伪类选择器实际开发中的写法:

:focus伪类选择器用于选取获得焦点的表单元素。

焦点就是光标,一般情况<input>类表单元素才能获取,因此这个选择器也主要针对于表单元素来说。

要想为指定的HTML元素添加CSS样式,首先需要选中该元素。在CSS中,执行这一选择操作规则部分被称为选择器(选择符)。

CSS基本选择器可以分为五类:标签选择器、id选择器、类选择器、通配符选择器和伪类选择器。

多类名选择器

可以给单个标签添加多个类名,既可以提升类样式的复用性,也可以达到添加多种样式的效果。在后面复杂网页的布局中使用较多。

<pre spellcheck="false" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="html" cid="n2260" mdtype="fences" style="box-sizing: border-boxoverflow: visiblefont-family: var(--monospace)font-size: 0.9emdisplay: blockbreak-inside: avoidtext-align: leftwhite-space: normalbackground-image: inheritbackground-position: inheritbackground-size: inheritbackground-repeat: inheritbackground-attachment: inheritbackground-origin: inheritbackground-clip: inheritbackground-color: rgb(248, 248, 248)position: relative !importantborder: 1px solid rgb(231, 234, 237)border-radius: 3pxpadding: 8px 4px 6pxmargin-bottom: 15pxmargin-top: 15pxwidth: inherit"><div class="pink fontWeight font20">苹果</div>

<div class="font20">香蕉</div>

<div class="font14 pink">橘子</div>

<div class="font14"></div></pre>

通配器选择器用“*”号表示,它是所有选择器中作用范围最广的,能匹配页面中所有的元素。

常用的结构伪类选择器:

:target 选择器

可用于选取当前活动的目标元素,然后给它添加相应的样式。

<pre spellcheck="false" class="md-fences md-end-block ty-contain-cm modeLoaded md-focus" lang="css" cid="n2337" mdtype="fences" style="box-sizing: border-boxoverflow: visiblefont-family: var(--monospace)font-size: 0.9emdisplay: blockbreak-inside: avoidtext-align: leftwhite-space: normalbackground-image: inheritbackground-position: inheritbackground-size: inheritbackground-repeat: inheritbackground-attachment: inheritbackground-origin: inheritbackground-clip: inheritbackground-color: rgb(248, 248, 248)position: relative !importantborder: 1px solid rgb(231, 234, 237)border-radius: 3pxpadding: 8px 4px 6pxmargin-bottom: 15pxmargin-top: 15pxwidth: inherit"><h2><a href="#brand">Brand</a></h2>

<div id="brand">

content for Brand

</div>

background: orange

color: #fff

}</pre>

复合选择器是由两个或多个基本选择器,通过不同的方式组合而成的,目的是为了更准确、更精细的选择目标元素标签。

复合选择器的三种类型:交集选择器、并集选择器、后代选择器、子选择器以及相邻元素选择器。

CSS复合选择器包括子选择器、相邻选择器、包含选择器、多层选择器嵌套、属性选择器、伪选择器和伪元素选择器,以上具体的使用如下,感兴趣的朋友可以学习下

1.子选择器

复制代码

代码如下:

<style

type="text/css">

#pic>img{

//

使用

>

号,让选择器只选择直接的子类,width:200px

height:200px

}

</style>

<div

id="pic">

<img

src="1.jpg"

alt="photo"

/>

<span><img

src="btn"

alt="点击大图"

/></span>

</div>

2.相邻选择器

如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器(Adjacent

sibling

selector)。

例如,如果要增加紧接在

h1

元素后出现的段落的上边距,可以这样写:

h1

+

p

{margin-top:50px}

这个选择器读作:“选择紧接在

h1

元素后出现的段落,h1

p

元素拥有共同的父元素”。

3.包含选择器

复制代码

代码如下:

#header

p{font-size:14px}

#main

p

{font-size:12}

定义<div

id

=

"header">包含框里的段落字体大小为14像素

定义<div

id

=

"main">包含框里的段落字体大小为12像素.

4.多层选择器嵌套

复制代码

代码如下:

#wrap

#header

h2

span

{font-size:24px}

#wrap

#main

h2

span

{font-size:14px}

5.属性选择器

(1)匹配属性名选择器

div[class]

{font-size:24px}

使该选择器能够匹配div中设置了class属性的对象定义格式

(2)匹配属性值选择器

img[alt="图像"][title="图像"]

{border:solid

2px

red}:

给<img

src="images/pic1.jpg"

alt="图像"

title=“图像”>定义样式

(3)模糊匹配属性值选择器

6.伪选择器和伪元素选择器

复制代码

代码如下:

<style

type

="text/css">

a:link{color:#FF0000}

/*正常链接状态下样式*/

a:visited{color:#0000FF}

/*被访问之后的样式*/

a:hover{color:#00FF00}

/*鼠标经过的样式*/

a:active{color:#FF00FF}

/*超链接被激活的样式*/

</style>