CSS选择器

标签选择器

作用: 根据指定的标签名称, 在当前界面中找到所有该名称的标签, 然后设置属性。
格式:
标签名称{
属性:值;
}
注意点:
1.标签选择器选中的是当前界面中所有的标签, 而不能单独选中某一个标签;
2.标签选择器无论标签藏得多深都能选中;
3.只要是HTML中的标签就可以作为标签选择器(h/a/img/ul/ol/dl/input....);

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>08-标签选择器</title>
    <style>
        p{
            color: red;
        }
        h1{
            color: blue;
        }
    </style>
</head>
<body>
<p>我是段落</p>
<p>我是段落</p>
<p>我是段落</p>
<p>我是段落</p>
<ul>
    <li>
        <ul>
            <li>
                <ul>
                    <li>
                        <p>我是段落</p>
                    </li>
                </ul>
            </li>
        </ul>
    </li>
</ul>
<h1>我是标题</h1>
</body>
</html>

id选择器

作用:根据指定的id名称找到对应的标签,然后设置属性。
格式:
`#id名称{
属性:值;
}
注意点:
1.每个HTML标签都有一个属性叫做id, 也就是说每个标签都可以设置id;
2.在同一个界面中id的名称是不可以重复的;
3.在编写id选择器时一定要在id名称前面加上#;
4.id的名称是有一定的规范的:

  • id的名称只能由字母/数字/下划线组成:
    a-z 0-9 _
  • id名称不能以数字开头;
  • id名称不能是HTML标签的名称;
    不能是a h1 img input ...

5.在企业开发中一般情况下如果仅仅是为了设置样式, 我们不会使用id ,因为在前端开发中id是留给js使用的

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>09-id选择器</title>
    <style>
        #identity1{
            color: red;
        }
        #identity2{
            color: green;
        }
        #identity3{
            color: blue;
        }
        #identity4{
            color: yellow;
        }
    </style>
</head>
<body>
<p id="identity1">迟到毁一生</p>
<p id="identity2">早退穷三代</p>
<p id="identity3">按时上下班</p>
<p id="identity4">必成高富帅</p>
</body>
</html>

类属性

作用: 根据指定的类名称找到对应的标签, 然后设置属性;
格式:
.类名{
属性:值;
}
注意点:

  1. 每个HTML标签都有一个属性叫做class, 也就是说每个标签都可以设置类名;
  2. 在同一个界面中class的名称是可以重复的;
  3. 在编写class选择器时一定要在class名称前面加上.;
  4. 类名的命名规范和id名称的命名规范一样,只能由字母/数字/下划线组成;
  5. 类名就是专门用来给CSS设置样式的;
  6. 在HTML中每个标签可以同时绑定多个类名。
    格式:
    <标签名称 class="类名1 类名2 ...">
    错误的写法:
    <p class="para1" class="para2">
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>10-类选择器</title>
    <style>
        .pp{
            color: red;
        }
        .ppp{
            color: green;
        }
        .pppp{
            color: blue;
        }
        .ppppp{
            color: yellow;
        }
        .para1{
            font-size: 100px;
        }
        .para2{
            font-style: italic;
        }
    </style>
</head>
<body>
<p class="pp">迟到毁一生</p>
<p class="ppp">早退穷三代</p>
<p class="pppp">按时上下班</p>
<p class="ppppp">必成高富帅</p>
<p class="para1 para2">我是段落</p>
<p class="para1 para2">我是段落</p>
</body>
</html>

id和class的区别?

  1. id相当于人的身份证不可以重复,class相当于人的名称可以重复;
  2. 一个HTML标签只能绑定一个id名称,一个HTML标签可以绑定多个class名称;
  3. id选择器以#开头,class选择器是以.开头;
  4. 在企业开发中id一般情况下是给js使用的, 所以除非特殊情况, 否则不要使用id去设置样式;

注意点:在企业开发中一个开发人员对类的使用可以看出这个开发人员的技术水平,一般情况下在企业开发中要注重冗余代码的抽取, 可以将一些公共的代码抽取到一个类选择器中, 然后让标签和这个类选择器绑定即可。

后代选择器

1.什么是后代选择器?
作用: 找到指定标签的所有特定的后代标签, 设置属性
格式:
标签名称1 标签名称2{
属性:值;
}
意思:先找到所有名称叫做"标签名称1"的标签, 然后再在这个标签下面去查找所有名称叫做"标签名称2"的标签, 然后再设置其属性。
div p{ }
注意点:
1.后代选择器必须用空格隔开;
2.后代不仅仅是儿子, 也包括孙子/重孙子, 只要最终是放到指定标签中的都是后代;
3.后代选择器不仅仅可以使用标签名称, 还可以使用其它选择器;
4.后代选择器可以通过空格一直延续下去;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>12-后代选择器</title>
    <style>
        /*
        div p{
            color: red;
        }
        */
        /*
        #identity p{
            color: red;
        }
        */
        /*
        .para p{
            color: blue;
        }
        */
        /*
        #identity #iii{
            color: skyblue;
        }
        */
        /*
        #identity .ccc{
            color: purple;
        }
        */
        div ul li p{
            color: red;
        }
    </style>
</head>
<body>
<p>我是段落</p>
<div id="identity" class="para">
    <p>我是段落</p>
    <p>我是段落</p>
    <ul>
        <li>
            <!--<p id="iii" class="ccc">我是段落</p>-->
            <p>我是段落</p>
        </li>
        <li>
            <p>我是段落</p>
        </li>
    </ul>
</div>
<p>我是段落</p>
</body>
</html>

子元素选择器

作用: 找到指定标签中所有特定的直接子元素, 然后设置属性。
格式:
标签名称1>标签名称2{
属性:值;
}
先找到所有名称叫做"标签名称1"的标签, 然后在这个标签中查找所有直接子元素名称叫做"标签名称2"的元素。
注意点:
1.子元素选择器只会查找其直接子元素, 不会查找其他被嵌套的标签;
2.子元素选择器之间需要用>符号连接, 并且中间不能有空格;
3.子元素选择器不仅仅可以使用标签名称, 还可以使用其它选择器;
4.子元素选择器可以通过>符号一直延续下去。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>13-子元素选择器</title>
    <style>
        /*
        div>p{
            color: red;
        }
        */
        /*
        #identity>p{
            color: blue;
        }
        */
        div>ul>li>p{
            color: purple;
        }
    </style>
</head>
<body>
<p>我是段落</p>
<div id="identity">
    <p>我是段落</p>
    <p>我是段落</p>
    <ul>
        <li><p>我是段落</p></li>
    </ul>
</div>
<p>我是段落</p>
</body>
</html>

后代选择器和子元素选择器之间的区别:

  1. 后代选择器使用空格作为连接符号,子元素选择器使用>作为连接符号;
  2. 后代选择器会选中指定标签中其所有的特定后代标签, 也就是会选中儿子/孙子..., 只要是被放到指定标签包裹的特定标签都会被选中,而子元素选择器只会选中指定标签中, 所有的特定的直接标签, 也就是只会选中特定的儿子标签。

后代选择器和子元素选择器之间的共同点:

  1. 后代选择器和子元素选择器都可以使用标签名称/id名称/class名称来作为选择器;
  2. 后代选择器和子元素选择器都可以通过各自的连接符号一直延续下去;
    选择器1>选择器2>选择器3>选择器4{}

注意点:
如果想选中指定标签中的所有特定的标签, 那么就使用后代选择器;
如果只想选中指定标签中的所有特定儿子标签, 那么就使用子元素选择器。

交集选择器:

作用: 给所有选择器选中的标签中, 相交的那部分标签设置属性。
格式:
选择器1选择器2{
属性: 值;
}
注意点:
1.选择器和选择器之间没有任何的连接符号;
2.选择器可以使用标签名称/id名称/class名称;
3.交集选择器仅仅作为了解, 企业开发中用的并不多。

并集选择器:

作用: 给所有选择器选中的标签设置属性。
格式:
选择器1,选择器2{
属性:值;
}
注意点:
1.并集选择器必须使用,来连接;
2.选择器可以使用标签名称/id名称/class名称。

兄弟选择器

  1. 相邻兄弟选择器CSS2
    作用: 给指定选择器后面紧跟的那个选择器选中的标签设置属性。
    格式:
    选择器1+选择器2{
    属性:值;
    }
    注意点:
    1. 相邻兄弟选择器必须通过+连接;
    2. 相邻兄弟选择器只能选中紧跟其后的那个标签, 不能选中被隔开的标签。
  2. 通用兄弟选择器 CSS3
    作用: 给指定选择器后面的所有选择器选中的所有标签设置属性。
    格式:
    选择器1~选择器2{
    属性:值;
    }
    注意点:

1.通用兄弟选择器必须用~连接;
2.通用兄弟选择器选中的是指定选择器后面某个选择器选中的所有标签, 无论有没有被隔开都可以选中。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>17-兄弟选择器</title>
    <style>
        /*
        h1+p{
            color: red;
        }
        */
        h1~p{
            color: green;
        }
    </style>
</head>
<body>
<h1>我是标题</h1>
<a href="#">我是超链接</a>
<p>我是段落</p>
<p>我是段落</p>
<a href="#">我是超链接</a>
<p>我是段落</p>
<h1>我是标题</h1>
<p>我是段落</p>
<p>我是段落</p>
<p>我是段落</p>
</body>
</html>

序选择器

CSS3中新增的选择器最具代表性的就是序选择器。

  1. 同级别的第几个:
    :first-child 选中同级别中的第一个标签;
    :last-child 选中同级别中的最后一个标签;
    :nth-child(n) 选中同级别中的第n个标签;
    :nth-last-child(n) 选中同级别中的倒数第n个标签;
    :only-child 选中父元素中唯一的标签;
    :nth-child(odd) 选中同级别中的所有奇数;
    :nth-child(even) 选中同级别中的所有偶数;
    :nth-child(xn+y)
    x和y是用户自定义的, 而n是一个计数器, 从0开始递增
    注意点: 不区分类型。
  2. 同类型的第几个:
    :first-of-type 选中同级别中同类型的第一个标签;
    :last-of-type 选中同级别中同类型的最后一个标签;
    :nth-of-type(n) 选中同级别中同类型的第n个标签;
    :nth-last-of-type(n) 选中同级别中同类型的倒数第n个标签;
    :only-of-type 选中父元素中唯一类型的某个标签;
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>18-序选择器</title>
    <style>
        /*p:first-child{
            color: red;
        }*/
        /* p:first-of-type{
            color: blue;
        } */
        /*p:last-child{
            color: red;
        }*/
        /*p:last-of-type{
            color: blue;
        } */
        /*p:nth-child(3){
            color: red;
        } */
        /*p:nth-of-type(3){
            color: blue;
        }*/
        /*p:nth-last-child(2){
            color: red;
        }*/
        /* p:nth-last-of-type(2){
            color: red;
        }*/
        /* p:only-child{
            color: purple;
        }*/
        /*p:only-of-type {
            color: red;
        }*/
        .para:only-of-type {
            color: red;
        }
    </style>
</head>
<body>
<p class="para">我是段落1</p>
<div>
    <p class="para">我是段落2</p>
    <p class="para">我是段落2</p>
    <h1>我是标题</h1>
</div>
</body>
</html>

属性选择器

格式:
[attribute]:根据指定的属性名称找到对应的标签, 然后设置属性。
[attribute=value]: 找到有指定属性, 并且属性的取值等于value的标签, 然后设置属性。
最常见的应用场景, 就是用于区分input属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>20-属性选择器上</title>
    <style>
        /*
        p[id]{
            color: red;
        }
        */
        p[class=cc]{
            color: blue;
        }
    </style>
</head>
<body>
<p id="identity1">我是段落1</p>
<p id="identity2" class="cc">我是段落2</p>
<p class="cc">我是段落3</p>
<p id="identity3" class="para">我是段落4</p>
<p>我是段落5</p>

</body>
</html>

应用

  1. 属性的取值是以什么开头的:
    [attribute|=value] CSS2
    [attribute^=value] CSS3
    两者之间的区别:
    CSS2中的只能找到value开头,并且value是被-和其它内容隔开的;
    CSS3中的只要是以value开头的都可以找到, 无论有没有被-隔开*。
  2. 属性的取值是以什么结尾的:
    [attribute$=value] CSS3
  3. 属性的取值是否包含某个特定值的:
    [attribute~=value] CSS2
    [attribute*=value] CSS3
    两者之间的区别:
    CSS2中的只能找到独立的单词, 也就是包含value,并且value是被空格隔开的;
    CSS3中的只要包含value就可以找到。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>21-属性选择器下</title>
    <style>
        /*
        img[alt^=abc]{
            color: red;
        }
        */
        /*
        img[alt|=abc]{
            color: red;
        }
        img[alt$=abc]{
            color: blue;
        }
        */
        /*
        img[alt*=abc]{
            color: red;
        }
        */
        img[alt~=abc]{
            color: red;
        }
    </style>
</head>
<body>
<img src="" alt="abcwwwmmm">
<img src="" alt="wwwmmmabc">
<img src="" alt="wwwabcmmm">
<img src="" alt="www-abc-mmm">
<img src="" alt="www abc mmm">
<img src="" alt="qq">
</body>
</html>

通配符选择器:

作用: 给当前界面上所有的标签设置属性。
格式:
*{
属性:值;
}
注意点:
由于通配符选择器是设置界面上所有的标签的属性, 所以在设置之前会遍历所有的标签, 如果当前界面上的标签比较多, 那么性能就会比较差, 所以在企业开发中一般不会使用通配符选择器。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,504评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,434评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,089评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,378评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,472评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,506评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,519评论 3 413
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,292评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,738评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,022评论 2 329
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,194评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,873评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,536评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,162评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,413评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,075评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,080评论 2 352

推荐阅读更多精彩内容

  • CSS选择器 标签选择器 什么是标签选择器? 作用: 根据指定的标签名称, 在当前界面中找到所有该名称的标签, 然...
    Jackson_yee_阅读 505评论 0 0
  • 选择器: 标签选择器格式:标签名称{属性:值;} id选择器格式: id名称{ } 类选择器格式:.类名{属性:值...
    往事一块六毛八阅读 408评论 0 0
  • 标签选择器 什么是标签选择器?作用: 根据指定的标签名称, 在当前界面中找到所有该名称的标签, 然后设置属性 格式...
    muyang_js的简书阅读 513评论 0 0
  • 标签选择器 什么是标签选择器? 作用: 根据指定的标签名称, 在当前界面中找到所有该名称的标签, 然后设置属性格式...
    e919b03f06c2阅读 291评论 0 0
  • 装满苦涩的荷塘 拥挤的喋喋情绪 被吵醒的秋天 期待神的意旨 那花还是不要再开了 在这错误的时令 何以期待着肆意盛放...
    嘟嘟的鱼阅读 372评论 2 3