博客列表 >css 规则的三种导入方式以及几类基础的选择器

css 规则的三种导入方式以及几类基础的选择器

祥子弟弟
祥子弟弟原创
2020年12月16日 16:51:54832浏览

一、css 规则的三种导入方式

1. 内部样式

内部样式是通过 style 标签引入的,这种样式导入仅在当前页面适用,一旦跳转到其他页面,想要引入当前页面的样式还得重新用 style 标签导入重新写一遍,这样会形成代码冗余。
页面样式示例:

  1. <h1>这是一个测试标题</h1>

<style>
h1 {
color: lightblue;
border: 1px solid;
}
</style>

浏览器效果如下:

2. 外部样式

外部样式是使用 link 标签引入的已经写好的 css 样式表。它适用于所有引入了这个 css 样式表的 html 文档。

使用同一个页面样式示例,仅是将 style 标签中的 css 样式代码重写到一个 css 文件中,然后使用 link 标签导入就好。
示例:

<link rel="stylesheet" href="style/style.css" />

3. 行内样式

行内样式的话,它有点类似私人定制的意思。它的使用范围是仅限于当前页面的特定元素,使用 style 属性去定义。

样式示例:

<h1 style="border: 1px solid #000">这是一个测试标题</h1>

二、css 的几类基础选择器

1. 简单选择器

  • 标签选择器

样式案例:

p {
background-color: lightblue;
}

  • 类选择器

样式案例:(此处的 class 是 class 属性的值)

.calss {
color: lightblue;
}

  • id 选择器

样式案例:(此处的 id 是 id 属性的值)

#id{
border: 1px solid #000;
}

2. 上下文选择器

  • 后代选择器(关键字:空格符)

选择范围是:所定位的标签下的所有后代标签

样式案例:

ul li {
background-color: lightgoldenrodyellow;
}

  • 子元素选择器(关键字:“>”)

选择范围是:所定位标签的子标签

样式案例:

ul > li {
color: red;
}

  • 同级之后紧邻选择器(关键字:“+”)

选择范围是:与所定位标签紧邻的之后的第一个兄弟元素

样式案例:

.a + li {
background-color: lightgreen;
}

  • 同级之后所有选择器(关键字:“~”)

选择范围是:与所定位标签紧邻的之后的所有兄弟元素

样式案例:

.a ~ li {
background-color: yellow;
}

3.伪类选择器

使用 “:nth-of-type(an+b)” 以及其衍生物可以匹配到页面内任意一个位置的元素(an: 起始点; b:偏移量)

以以下 html 代码为示例

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8" />
  5. <title>伪类选择器</title>
  6. </head>
  7. <body>
  8. <ul>
  9. <li>item1</li>
  10. <li>item2</li>
  11. <li>item3</li>
  12. <li>item4</li>
  13. <li>item5</li>
  14. <li>item6</li>
  15. <li>item7</li>
  16. <li>item8</li>
  17. <li>item9</li>
  18. <li>item10</li>
  19. </ul>
  20. <ul>
  21. <li>这是唯一的</li>
  22. </ul>
  23. </body>
  24. </html>
  • 匹配到单个元素

此时的 a 为 0,b 是要匹配到的位置

示例:(匹配到第三个 li 元素)

ul li :nth-of-type(3) {
background-color: lightgoldenrodyellow;
}

浏览器效果:

  • 匹配多个元素

此时 a 不为 0,按照所选择的规则适当的改变 a 的值

示例:(匹配第三个及之后的所有元素)

ul li :nth-of-type(n + 3) {
background-color: lightgoldenrodyellow;
}

浏览器效果:

如果想只选中前两个元素,除了用添加 class 属性以外还可以用 nth-of-type(an+b),此时的 a 为-1,所选取的内容为偏移量之前的所有内容

示例:(匹配前两个元素)

ul li:nth-of-type(-n + 2) {
background-color: lightgoldenrodyellow;
}

浏览器效果:

(此处的唯一元素会被包含是因为它属于 ul 下第一个 li 的位置,同时也是最后一个 li 的位置)

  • 反向获取元素位置 (nth-last-of-type(an+b))

当一列元素特别多无法知道具体数值,但是想定位到尾部元素的时候用这个方法,原理和 nth-of-type(an+b)相同,不过是要反过来理解。

示例:(匹配最后一个元素)

ul li:nth-last-of-type(-n + 2) {
background-color: lightgoldenrodyellow;
}

浏览器效果:

匹配最后一个元素还可以用:last-of-type 来定义,相同的,匹配第一个元素也可以用:first-of-type 来定义,这都是:nth-of-type()的语法糖

  • 匹配元素位置为偶数/奇数的元素(关键字:even 代表偶数,odd 代表奇数)

示例:(选择偶数位置的元素)

ul li:nth-of-type(even) {
background-color: lightgoldenrodyellow;
}

浏览器效果:

当然这个偶数位置还可以用 2n 表示,奇数位置也可以用 2n+1 或者 2n-1 表示

  • 匹配父元素中唯一子元素(only-of-type)

ul li:only-of-type {
background-color: rgb(183, 221, 247);
}

浏览器效果:

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议