前端开发学习笔记–CSS 选择器

发布于 2018-04-10  368 次阅读


一、基本选择器即使用简单且频率高的一些选择器归类为基本选择器

CSS 选择器:通过选择器定位到想要设置样式的元素

1.通用选择器

* {
   border: 1px solid red;
}

释:“*”号选择器是通用选择器,匹配所有 html 元素的选择器包括<html>和<body>标签。将所有元素匹配并配置样式。好处是方便,坏处是将不必要的元素也配置

2.元素选择器

<p>段落</p>
p {
   color: green;
}

释:直接使用元素名称作为选择器名

3.ID 选择器

<p id="abc">段落</p>
#abc {
      font-size: 200px;
}

释:通过对元素设置全局属性 id,然后使用#id 值来选择页面唯一元素。

4.类选择器

<b class="abc">加粗</b>
<span class="abc">无</span>
.abc {
      border: 1px solid red;
}

释:通过对元素设置全局属性 class,然后使用.class 值选择页面一个或多个元素。

b.abc {
       border: 1px solid red;
}

释:可以使用“元素.class 值”的形式,限定某种类型的元素。

<span class="abc cba">无</span>

释:类选择器可以调用多个样式,中间用空格隔开进行层叠

5.属性选择器

[href] {
        color: green;
}

释:属性选择器,直接通过两个中括号里面包含属性名即可。

扩展的属性选择器如下:

⑴:

[type="password"] {
                   border: 1px solid red;
}

释:匹配属性值的属性选择器。

⑵:

[href^="http"] {
                color: green;
}

释:属性值开头匹配的属性选择器。

⑶:

[href$=".com"] {
                color: green;
}

释:属性值结尾匹配的属性选择器。

⑷:

[href*="baidu"] {
                 color: green;
}

释:属性值包含指定字符的属性选择器。

⑸:

[class~="cba"] {
                font-size:10px;
}

释:属性值具有多个值时,匹配其中一个值的属性选择器。

⑹:

[lang|="en"] {
              color: green;
}

释:属性值具有多个值且使用“-”号连接符分割的其中一个值的属性选择器。如<i lang="en-us">HTML5</i>。

二.复合选择器即将不同的选择器进行组合形成新的特定匹配

1.分组选择器

p,b,i,span {
            color: green;
}

释:将多个选择器通过逗号分割,同时设置一组样式。也可以分组元素选择器,还可以使用 ID 选择器、类选择器、属性选择器混合使用。

2.后代选择器

p b {
     color:green;
}

释:选择<p>元素内部所有<b>元素。不管<b>的层次深度。后代选择器可以混合使用 ID 选择器、类选择器、属性选择器。

3.子选择器

<ul>
         <li>儿子
              <ol>
                 <li>孙子</li>
                 <li>孙子</li>
             </ol>
         </li>
         <li>儿子</li>
         <li>儿子</li>
</ul>
ul > li {
         border: 1px solid red;
}

释:子选择器与后代选择器,区别是子选择器只能选择父元素向下一级的元素,不可以再往下选择。

4.相邻兄弟选择器

p + b {
       color: green;
}

释:相邻兄弟选择器匹配和第一个元素相邻的第二个元素。

5.普通兄弟选择器

p ~ b {
       color: green;
}

释:普通兄弟选择器匹配和第一个元素后面的所有元素

三.伪元素选择器有两种:

A:伪元素选择器,前置两个冒号(::)

1.::first-line 块级首行

::first-line {
              color:green;
}

释:块级元素比如<p>、<div>等的首行文本被选定。如想限定某种元素,可加前置 p::first-line。

2.::first-letter 块级首字母

::first-letter {
                color:green;
}

释:块级元素的首行字母。

3.::before 文本前插入

a::before {
           content: '点击-';
}

释:在文本前插入内容。

4.::after 文本后插入

a::before {
            content: '-请进';
}

释:在文本后插入内容

B:伪类选择器,前置一个冒号(:)

待续......