CSS选择器

本文中包含了CSS1、CSS2、CSS3选择器,并对其中的一些自认为较难理解的地方做了注记,希望对大家有用

一、CSS1选择器 


CSS1选择器注:

注1:为什么要LVHA 
 

1.鼠标经过的“未访问链接”同时拥有a:link、a:hover两种属性,后面的属性会覆盖前面的属性定义;

2.鼠标经过的“已访问链接”同时拥有a:visited、a:hover两种属性,后面的属性会覆盖前面的属性定义;

所以说,a:hover定义一定要放在a:link、a:visited的后面。再重复一遍正确的顺序是:a:link、a:visited、a:hover、a:active .

注2:在谷歌浏览器中,a标签的herf中有内容时,a:link{color:blue}才有效,因为a:link会对拥有href=“ ”,即拥有实际链接地址的a对象发生效果。

二、CSS2选择器

 注1:

 [target = _black],选择有target属性并且属性值是_black,没有其他值

例如:
   [title=demo]{
    background: yellow;
    } 
   <p title="demo">p1</p>  //有效
   <p title="demo demo11">p2</p>  //无效,title多了demo11这个值,若换成注2中的方法就可以了

注2:

[title ~= demo]{
    background: yellow;
}
<p title="demo demo1">p1</p>  //有效
<p title="demo22">p2</p> //无效,[title ~= demo]是说title属性包含demo这个词,属性值之间用空格分隔的单词,demo22就不是demo这个词了,尽管包含demo,所以上面表格中说的包含单词demo需要理解清楚。

三、CSS3选择器

注1:first-child 和 first-of-type

CSS2选择器中有个:first-child

div:first-child{ background-color: red; }//无效,因为<div>1</div>并不是body元素的第一个子元素
<body>
    <p>0</p>
    <div>1</div>
    <div>2</div>
    <div>3</div>
</body>

CSS3选择器中有个:first-of-type

div:first-of-type{/*改*/ background-color: red; }//有效,因为<div>1</div>是body元素的子元素中所有div的第一个

同理:last-child和last-of-type一样

注2::only-child 和 :only-of-type

<body>
    <div>1</div>
    <div>2</div>
    <div>3</div>
    <p>4</p>
</body>

p:only-child { //无效,p不是body的唯一子p元素
    background: red;
}

p:only-of-type{//有效,pbody的唯一一个p子元素
    background: red;
}

3:nth-child(n) :nth-of-type(n)

<body>
      <div>1</div>
      <div>2</div>
      <p>3</p>
      <div>4</div>
      <p>5</p>
</body>

body p:nth-child(2){ background: red; }//无效,body中第二个元素是<div>2</div>,不是p元素,此选择器无效。

补充:关于body p:nth-child(2),如果body中的第二个元素是p元素则有效,如果不是p元素,则无效;若是body :nth-child(2),则选中body中第二个元素。

body p:nth-of-type(2){ background: red; }//有效,效果如下图,因为<p>5</p>是body中第二个p元素

同理 :nth-last-child(n):nth-last-of-type(n)一样

注4:根元素选择器
:root这个选择器没什么意思,和你直接使用html一样
:root {...}
html {...}

其他内容,详见https://blog.csdn.net/q1056843325/article/details/53189526

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值