AI智能
改变未来

CSS选择器类型总结


CSS选择器类型总结

1.通用选择器

一般用于给所有元素做一些通用性的样式设置,比如清除内边距、外边距等。但是效率比较低,尽量不要使用。

* {margin: 0;padding: 0;}

2.元素选择器

也叫做“标签选择器”,用于选中一类标签进行样式设置。

div { color: #ff0000; }span { font-size: 18px; }

3.类选择器

给元素添加class属性,通过

.class属性值

来选中元素。

  • 一个元素可以有多个class值,每个class值之间用空格隔开;
  • class值如果由多个单词组成,单词之间可以用
    中划线-

    下划线_

    ,也可以使用驼峰标识;

  • 最好不要用标签名作为class值;
.box {width: 100px;height: 100px;background-color: #ff0000;}
<div class="box"></div>

4.id选择器

给元素添加id属性,通过

#id属性值

来选中元素。

  • 一个HTML文档里面的id值是唯一的,不能重复;
  • id值如果由多个单词组成,单词之间可以用
    中划线-

    下划线_

    ,也可以使用驼峰标识;

  • 最好不要用标签名作为id的值;
#container { color: #ff0000; }
<div id="container"></div>

5.属性选择器

  • [attr]

    :选中拥有attr属性的元素;

    /* 选中拥有title属性的元素 */[title]: { color: #ff0000; }
    <div title="one">内容</div>
  • [attr=val]

    :选中attr属性值恰好等于val的元素;

    /* 选中title值恰好等于one的元素 */[title="one"] { color: #ff0000; }
    <div title="one">内容</div>
  • [attr*=val]

    :选中attr属性值包含单词val的元素;

    /* title属性值包含单词one的元素 */[title*="one"] { color: #ff0000; }
    <div title="one">内容1</div><p title="aaaone">内容2</p><span title="one-two">内容3</span>
  • [attr^=val]

    :选中attr属性值以val开头的元素;

    /* title属性值以单词one开头的元素 */[title^="one"] { color: #ff0000; }
    <div title="one">内容1</div><span title="one-two">内容2</span><p title="one two">内容3/p>
  • [attr|=val]

    :选中attr属性值恰好等于val或以单词val开头后面紧跟

    连字符-

    的元素;

    /* title属性值恰好等于one或者以单词one开头且后面跟着连字符-的元素 */[title|="one"] { color: #ff0000; }
    <div title="one">内容1</div><span title="one-two">内容2</span>
  • [attr~=val]

    :选中attr属性值包含单词val的元素(单词之间必须用空格隔开);

    /* title属性值包含单词one的元素(单词one与其他单词之间必须用空格隔开) *//* 效果类似于类选择器 */[title~="one"] { color: #ff0000; }
    <div title="one">内容1</div><p title="one two">内容2</p>
  • [attr$=val]

    :选中attr属性值以单词val结尾的元素;

    /* title属性值以单词one结尾的元素 */[title$="one"] { color: #ff0000; }
    <div title="two-one">内容1</div><p title="two one">内容2</p>

6.后代选择器

选择指定元素下的子元素,包括直接和间接子元素,使用空格进行隔开。

/* 选择div下所有span元素 */div span { color: #ff0000; }
<div><span>文字内容1</span><p><span>文字内容2</span></p></div>

7.子代选择器

选择指定元素下的直接子元素,不包括间接子元素,使用

>

/* 选择div元素下的直接span元素 */div > span { color: #ff0000; }
<div><span>文字内容1</span></div>

8.兄弟选择器

  • 相邻兄弟选择器

    +

    :选择某元素后面紧挨的兄弟元素;

    /* div元素后面紧挨的p元素 */div + p { color: #ff0000; }
    <div></div><p>内容</p>
  • 全兄弟选择器

    ~

    :选择某元素后面的兄弟元素,不需要紧挨;

    /* div元素后面的p元素 */div ~ p { color: #ff0000; }
    <div></div><p>内容1</p><p>内容2</p>

9.交集选择器

选择同时符合多个条件的元素。

/* 选择div元素且class为one的 */div.one { color: #ff0000; }/* 选择div元素且class为one且title属性值等于one的 */div.one[title="one"] { color: #ff0000; }
<div class="one" >内容1</div><div class="one" title="one">内容2</div>

10.并集选择器

不同选择条件,中间用

,

连接,进行全部选中。

/* 所有的div元素 + 所有class值有one的元素 + 所有title属性值等于one的元素 */div, .one, [title="one"] { color: #ff0000; }
<div>内容1</div><span title="one">内容2</span><p class="one">内容3</p>

11.伪类选择器

11.1.动态伪类

  • :link

    :a:link未访问的链接;

  • :visited

    :a:visited已访问的链接;

  • :hover

    :a:hover鼠标移动到链接上;

  • :active

    :a:active激活的链接(鼠标在链接上长按未松开);

  • :focus

    :当前拥有输入焦点的元素(能接收键盘的输入,一般为input);

注意点:

  • :hover

    必须放在

    :link

    :visited

    后面才能完全生效;

  • :active

    必须放在

    :hover

    后面才能完全生效;

  • 建议编写顺序:link、visited、focus、hover、active;
  • 处理a元素,
    :hover

    :active

    也能用于其他元素;

11.2.目标伪类和语言伪类

  • 目标伪类:

    :target

  • 语言伪类:

    :lang

11.4.元素状态伪类

  • :enabled

    :可用的;

  • :disable

    :禁用的;

  • :checked

    :选中的;

11.5.结构伪类

  • :nth-child(n)

    :父元素中的第n个子元素(n代表任意正整数和0,也可用even(偶数)和odd(奇数));

    /* 选中所有父元素下的第一个为p的元素 */p:nth-child(1) { color: #ff0000; }
  • :nth-last-child(n)

    :与

    :nth-child相反

    ,父元素中倒数第n个子元素;

    /* 选中父元素下倒数第一个为p的元素 */p:nth-last-child(1) { color: #ff0000; }/* 选中最后两个为p的元素 */p:nth-last-child(-n + 2)  { color: #ff0000; }
  • nth-of-type(n)

    :计数时只计算同种类型的元素;

    /* 选中父元素下所有p元素中的第二个p元素 */p:nth-of-type(2) { color: #ff0000; }
  • :nth-last-of-type(n)

    :从后往前计算同种类型的元素;

    /* 选中父元素下所有p元素中倒数第二个p元素 */p:nth-last-of-type(2) { color: #ff0000; }
  • :first-child

    :等同于

    :nth-child(1)

  • :last-child

    :等同于

    :nth-last-child(1)

  • :first-of-type

    :等同于

    :nth-of-type(1)

  • :last-of-type

    :等同于

    :nth-last-of-type(1)

  • :only-child

    :是父元素中唯一的子元素;

  • :only-of-type

    :是父元素中唯一的指定类型的元素;

  • :empty

    :里面完全空白的元素,不包含子元素和内容;

  • :root

    :根元素,就是html元素;

11.6.否定伪类

:not()

的格式是:

not(x)

表示除x以外的元素(x表示简单的选择器,可以是元素、通用、属性、类、id、伪类(除否定伪类)选择器等)。

/* 选中父元素下所有p元素不是第一个和最后一个的p元素 */p:not(:first-of-type):not(:last-of-type) { color: #ff0000; }

注意:

:not()

只支持简单选择器,不支持组合选择器,比如交集和并集选择器等。

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » CSS选择器类型总结