Blogger Information
Blog 5
fans 0
comment 0
visits 4446
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
CSS基本语法、引入方式及常用选择器
小狐的博客
Original
859 people have browsed it

CSS 语法

css:层叠样式表,用来设置页面中元素的样式、布局。

一、基本语法

  1. h1 {
  2. color: violet;
  3. border: 1px solid #000;
  4. }

h1:选择器
{...}:声明块,由一个或多个样式声明组成,各声明由分号分隔
h1 + {...}:选择器 + 声明块 = 规则

二、引入方式

  • 1、内部样式

    1. <style>
    2. h1 {
    3. /* 声明:属性和值组成 */
    4. color: violet;
    5. border: 1px solid #000;
    6. }
    7. </style>
  • 2、外部样式

    1. <style>
    2. /* 通过指令引入外部 css 样式(不推荐使用) */
    3. /* 常用于 css 模块化 */
    4. @import url(css/style.css);
    5. @import "css/style.css";
    6. </style>
    7. <!-- 通过 link 引入css 样式(推荐使用) -->
    8. <link rel="stylesheet" href="css/style.css" />
  • 3、内联样式

    1. <h1 style="color: violet;">css真的非常好玩</h1>
  • 4、小结

    • 内部样式:通过 style 引入,仅适用于当前页面(html 文档)
    • 外部样式:适用于所有引入了这个 css 样式表的 html 文档,使用 link 标签
    • 内联样式:也叫 行内样式 通过标签的style属性,仅适用于当前的页面中的指定的元素
    • 外部知识点:link 和@import 的区别

三、模块化

  • html 页面

    1. <!--导入公共样式表-->
    2. <link rel="stylesheet" href="style.css" />
  • css 样式表

    1. /*导入公共页眉*/
    2. @import url(header.css);
    3. /*导入公共页脚*/
    4. @import "footer.css";
    5. /*主体样式*/
    6. main {
    7. min-height: 500px;
    8. background-color: lightcyan;
    9. }
  • 小结

    • 1、将公共样式部分进行分离,并创建一些独立的样式表来保存
    • 2、使用@import 指令将这些独立的公共样式表引入到指定的 css 文档或标签中

四、普通选择器

  1. <body>
  2. <!--示范结构代码-->
  3. <ul>
  4. <li id="foo">item1</li>
  5. <li class="on">item2</li>
  6. <li id="foo">item3</li>
  7. <li class="on">item4</li>
  8. <li class="on">item5</li>
  9. </ul>
  10. </body>
  • 1、标签选择器

    1. <style>
    2. /* 标签选择器,返回一组 */
    3. li {
    4. background-color: violet;
    5. }
    6. </style>
    • 效果展示
  • 2、类选择器

    1. <style>
    2. /* 类选择器: 返回一组(所有 class = "on" 的标签) */
    3. li[class="on"] {
    4. background-color: violet;
    5. }
    6. /* class选择器可简化为 . */
    7. .on {
    8. background-color: violet;
    9. }
    10. </style>
    • 效果展示
  • 3、id 选择器

    1. <style>
    2. /* id选择器: 返回一个 */
    3. li[id="foo"] {
    4. background-color: violet;
    5. }
    6. /* 因为浏览器不检查id的唯一性,必须由开发者自行保证 */
    7. /* id选择器使用 # 简化 */
    8. #foo {
    9. background-color: violet;
    10. }
    11. </style>
    • 效果展示
  • 4、上下文选择器

    因为 html 是一个结构化的文档:每个元素在文档中有确切的位置
    因此,可以根据元素的上下文环境来选择元素

    1. <body>
    2. <!--示范结构代码-->
    3. <ul>
    4. <li>item1</li>
    5. <li class="start">item2</li>
    6. <li>item3</li>
    7. <li>
    8. item4
    9. <ul>
    10. <li>item4-1</li>
    11. <li>item4-2</li>
    12. <li>item4-3</li>
    13. </ul>
    14. </li>
    15. <li>item5</li>
    16. </ul>
    17. </body>
    • 后代选择器

      1. <style>
      2. /* 后代选择器: 所有ul下的li层级 */
      3. ul li {
      4. background-color: lightblue;
      5. }
      6. </style>
      • 效果展示
    • 子元素选择器

      1. <style>
      2. /* 子元素选择器: 仅父子层级 */
      3. /* 选择 body 下的 ul 标签 中的 所有 li 标签 */
      4. body > ul > li {
      5. background-color: teal;
      6. }
      7. </style>

      注:如果没有其他选择器对里层的 li 进行选择,这里的 item4 下的 li 也会被选择

      • 效果展示
    • 同级相邻选择器

      1. <style>
      2. /* 同级相邻选择器: 仅选中与之相邻的第一个兄弟元素 */
      3. /* 根据 item2 的类名,选择与之相邻的 li,最终选中 item3 */
      4. /* 也可以写成 .start+*,选择与 .start 相邻的任意一个元素 */
      5. .start + li {
      6. background-color: lightgreen;
      7. }
      8. </style>
      • 效果展示
    • 同级所有选择器

      1. <style>
      2. /* 同级所有选择器: 选中与之相邻的后面所有兄弟元素 */
      3. .start ~ li {
      4. background-color: yellow;
      5. }
      6. </style>
      • 效果展示
    • 上下文选择器小结

      • 空格:所有层级
      • > :父子级
      • + :相邻的兄弟
      • ~ :所有相邻兄弟

五、伪类选择器

  1. <body>
  2. <!--示范结构代码-->
  3. <ul class="list">
  4. <li>item1</li>
  5. <li>item2</li>
  6. <li>item3</li>
  7. <li>item4</li>
  8. <li>item5</li>
  9. <li>item6</li>
  10. <li>item7</li>
  11. <li>item8</li>
  12. <li>item9</li>
  13. <li>item10</li>
  14. </ul>
  15. <ul>
  16. <li>我是一个流浪汉</li>
  17. </ul>
  18. </body>
  • 1、结构伪类选择器

    • (1)正向获取元素::nth-of-type(an+b)

      • 匹配任意位置的元素

        1. <style>
        2. /* an+b: an是起点,b是偏移量,n = (0,1,2,3...) */
        3. /* 匹配第3个 li (0 * n + 3) */
        4. ul li:nth-of-type(0n + 3) {
        5. background-color: violet;
        6. }
        7. /* 0乘以任何数都等于0,通常直接写偏移量就可以 */
        8. ul li:nth-of-type(3) {
        9. background-color: violet;
        10. }
        11. </style>
        • 效果展示
      • 匹配所有元素

        1. <style>
        2. /* 选择所有元素 */
        3. ul li:nth-of-type(1n) {
        4. background-color: violet;
        5. }
        6. /* 如果只是为了全选,这样做没意义,还不如标签选择器来得直接,但是一旦带上偏移量就完全不同了 */
        7. /* 选择第三个及之后的所有元素 */
        8. ul li:nth-of-type(1n + 3) {
        9. background-color: violet;
        10. }
        11. /* 1乘以任何数都等于自己,所以省去1 */
        12. ul li:nth-of-type(n + 3) {
        13. background-color: violet;
        14. }
        15. </style>
        • 效果展示
    • (2)反向获取元素:nth-last-of-type(an+b)

      1. <style>
      2. /* 反向获取任意位置的元素: `nth-last-of-type(an+b)` */
      3. /* 获取倒数三个元素 */
      4. ul li:nth-last-of-type(-n + 3) {
      5. background-color: violet;
      6. }
      7. /* -n没有意义,可以直接写 3 */
      8. ul li:nth-last-of-type(3) {
      9. background-color: violet;
      10. }
      11. </style>
      • 效果展示
  • (3)奇偶数

    1. <style>
    2. /* 选择偶数行 */
    3. ul li:nth-of-type(2n) {
    4. background-color: violet;
    5. }
    6. /* 2*0 = 0
    7. 2*1 = 2
    8. 2*2 = 4
    9. 2*3 = 6 */
    10. /* 选择奇数行 */
    11. /* 或 2n+1 */
    12. ul li:nth-of-type(2n-1) {
    13. background-color: violet;
    14. }
    15. /* 也可以用关键字方式 */
    16. /* 偶数行: even */
    17. ul li:nth-of-type(even) {
    18. background-color: violet;
    19. }
    20. /* 奇数行: odd */
    21. ul li:nth-of-type(odd) {
    22. background-color: violet;
    23. }
    24. </style>
    • 效果展示_偶数
    • 效果展示_奇数
  • (4)语法糖(为简化而生的语法方式)

    :nth-of-type(an+b) 这是最核心的一个选择器,其它的相关选择器都是它的语法糖。
    :nth-last-of-type():first-of-type:last-of-type,这些都是快捷方式。

    1. <style>
    2. /* 选择第一个子元素: :first-of-type */
    3. /* :nth-of-type(1) 的语法糖 :first-of-type */
    4. ul li:first-of-type {
    5. background-color: violet;
    6. }
    7. /* -------------------------------------------- */
    8. /* 选中最后一个: :last-of-type */
    9. ul li:last-of-type {
    10. background-color: violet;
    11. }
    12. /* -------------------------------------------- */
    13. /* 选中最后一个 ul 中的 li */
    14. ul:last-of-type li:first-of-type {
    15. background-color: violet;
    16. }
    17. /* 如果只想匹配父元素中唯一子元素,使用:`only-of-type` 就可快速实现(用的不多) */
    18. ul li:only-of-type {
    19. background-color: violet;
    20. }
    21. </style>
Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post