css first child mdn,CSS 选择器

CSS 选择器

id 和 class 的使用场景

id 具有唯一性,class 具有普遍性,可以多次使用。

id 是唯一的,最好不要用。除非确保网页中某个元素只有一个。

id 权重是100,class 权重是10。

id 是一个标签,用于区分不同的结构和内容。

class 是可重复的,尽量在结构内部使用,通常用于样式定义。

特定一组元素应用样式就用 class。

id 用 #id,class 用 .class 。

CSS 选择器

基本选择器

通配符选择器 *

id 选择器 #id

类选择器 .classname

元素选择器 element

后代选择器 .classname .classname,#id .classname,.classname element

子元素选择器 element>element

相邻兄弟元素选择器 element + element

群组选择器 (.classname,.classname,.classname)

伪类选择器

a:visted,a:link,a:hover,a:focus,a:active,a:checked,

:after,:before

属性选择器

a[property]{}

选择器的优先级

优先级就是分配给指定的CSS声明的一个权重,它由 匹配的选择器中的 每一种选择器类型的 数值 决定。

而当优先级与多个CSS声明中任意一个声明的优先级相等的时候,CSS中最后的那个声明将会被应用到元素上。

当同一个元素有多个声明的时候,优先级才会有意义。因为每一个直接作用于元素的CSS规则总是会接管/覆盖(take over)该元素从祖先元素继承而来的规则。

优先级,指CSS样式在浏览器中被解析的先后顺序。

id选择器优先级很高,权值为100

class、属性和伪类选择器的权值为10

标签选择器权值为1

在比较样式的优先级时,只需统计选择符中的id、class和标签名的个数,然后把相应的权值相加即可,最后根据结果排出优先级

权值较大的优先级越高

权值相同的,后定义的优先级较高

样式值含有!important,优先级最高

浏览器CSS匹配不是从左到右进行查找,而是从右到左进行查找。

比如DIV#divBox p span.red{color:red;},浏览器的查找顺序如下:先查找html中所有class='red'的span元素,找到后,再查找其父辈元素中是否有p元素,再判断p的父元素中是否有id为divBox的div元素,如果都存在则匹配上。

浏览器从右到左进行查找的好处是为了尽早过滤掉一些无关的样式规则和元素。

a:link, a:hover, a:active, a:visited 的顺序

link和visited必须在最前面,且没有先后顺序,否则link或visited的效果将被覆盖。

a:hover 必须被置于 a:link 和 a:visited 之后,才是有效的。

link和visited称为静态伪类,只能应用于超链接。

focus、hover、active 这三个伪类必须是focus、hover、active的顺序,因为在focus状态下,也需要触发hover和active,而要触发active一定要先触发hover,所以active要放在hover后面。

hover、active、focus称为动态伪类,可应用于任何元素,但IE7-浏览器不支持:focus,:hover和:active在IE6-浏览器下只支持给a标签设置。

所以最终的顺序只有两种:link、visited、focus、hover、active或visited、link、focus、hover、active。

选择器举例

#header{

// id 选择器 header

}

.header{

//class 选择器 header

}

.header .logo{

//.header 类的子元素里所有 .logo 的类

}

.header.mobile{

// 包含 header 和 mobile 的元素,同时包含

}

.header p, .header h3{

//header 类下的所有 p 元素以及 h3 元素

}

#header .nav>li{

//id 为 header 的元素下的类名为 nav 元素的子元素 li,只到子代。

}

#header a:hover{

//id 为 header 的元素下的所有 a 链接 鼠标划过时的样式。

}

#header .logo~p{

//id 为 header 的元素下类名为 logo 的元素下,子代元素里所有的 p 元素。

}

#header input[type="text"]{

//id 为 header 的元素下所有带有 type="text" 的 input 元素。

}

伪类选择器

a:visted,a:link,a:hover,a:focus,a:active,a:checked,

:after,:before

div :first-child 和 div:first-of-type 的作用和区别

div :first-child //div 的第一个子元素。

div :first-of-type //匹配所有子元素中某个类型的第一个。

如果所有的子元素都是不一样的,那么所有的子元素都将匹配到。

分析原因

渲染后如下所示:

789200e03a9c3343c5c601fa982fe271.png

first-child

1.父元素下的第一个子元素就是 p ,故渲染正确。

2.一共有两种类型的元素,一个是 p ,一个是 h3。p只有一个,它起效果。

h3 有两个,但只对第一个起作用(bb)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值