HTML中CSS的语法详解(第8节)


构建网页的过程中,我们不仅需要HTML来搭建骨架,还需要CSS来装扮我们的网页。在前面的教程中,我们已经简单介绍了CSS的用法,本节教程我们将详细讲解CSS的基础概念,注释、选择器及优先级。

1、CSS简介

CSS英文全称为Cascading Style Sheets(层叠样式表)是一种用于描述HTML(超文本标记语言)和XML(可扩展标记语言)等文档外观和样式的语言。它的主要功能是控制网页中的字体、大小、颜色、布局、边框、背景等方面的样式。通过CSS,开发者可以将样式与HTML文档分离,使网页的样式和布局更加灵活、可维护和可扩展。CSS可以内嵌在网页中、通过外部链接引用CSS文件或直接写入HTML标记中。CSS文件扩展名为“.css”。

2、CSS语法规则

CSS规则的基本结构如下:

选择器{属性:属性值; 属性:属性值; 属性:属性值;}

(1)CSS声明

CSS声明总是以大括号“{}”括起来,并以分号“;”结束。注意,‌在CSS中,所有的标点符号必须使用英文状态下的标点符号‌。例如:

p{color:red;height:60px;width:200px;}

为了提高CSS的可读性,可以在每行只描述一个属性,这样的格式化书写可以让开发者能够快速理解和修改CSS代码。例如:

动手练一练:

p {
    color:red;
    height:60px;
    width:200px;
}

(2)CSS注释

CSS注释是用来解释代码的,并且可以随意编辑它,浏览器会忽略它。CSS注释以“/*”开始,以“*/”结束,例如:

/*这是一个注释*/
p {
    color:red;
    /*这是另一个注释*/
    height:60px;
    width:200px;  /*这还是一个注释*/
}

(3)选择器‌

CSS选择器用于指定要设置样式的HTML标签。常见的选择器包括:

‌标签选择器‌:如p选择所有的<p>标签。

ID选择器‌:如“#id”选择具有特定ID的标签,ID选择器以“#”来定义,‌ID在页面中是唯一的,因此‌ID选择器用于选择一个唯一的标签,一个‌ID选择器只能给一个标签使用。

‌类选择器‌:如“.class”选择具有特定类的标签,类选择器以“.”来定义,‌一个class类选择器可以给多个标签使用。

常见的选择器‌代码示例如下:

动手练一练:

<!DOCTYPE html>
<html>
    <!--head头部.用来完成一个网页的相关设置-->
    <head>
        <!--汉字编码-->
        <meta charset="UTF-8">
        <!--网页标题-->
        <title>z-index属性</title>
        <style>
            .myClass {
                color: pink;
                font-size: 40px;
            }
            #myId {
                color: purple;
                font-size: 50px;
            }
            p {
                color: red;
                font-size: 50px;
            }
        </style>
    </head>
 <body>
        <!-- class实例 -->
        <div class="myClass">第一个DIV“区块”</div>

        <!-- id实例,用于选择一个唯一的标签 -->
        <div id="myId">第二个DIV“区块”</div>

        <!-- 可以在多个标签中使用相同的class属性 -->
        <div class="myClass">第三个DIV“区块”</div>

        <!-- p段落标签实例 -->
        <p>
            这是一个段落。
        </p>
 </body>
</html>

(4)通用选择器‌

通用选择器“”可以选中页面上所有的HTML标签,并对它们设置样式。通用选择器“”可以控制页面中所有的标签样式。例如:

* {
    color: red;
    font-size: 50px;
}

(5)CSS多个选择器

在HTML中,CSS多个选择器可以通过逗号分隔的方式组合在一起,应用相同的样式规则。这样可以同时为多个不同的标签添加相同的样式,而不需要为每个标签写多个样式规则。

例如,想为多个标签设置相同的样式,可以这样写:

div, span, #myId, .myClass {
 color: pink;
 font-size:15px;
}

(6)伪类选择器

同一个标签,根据其不同的状态,有不同的样式,叫做“伪类”。伪类前面用冒号来表示。

:link:超链接点击之前

:visited:超链接被访问过之后

以上伪类选择器只适用于超链接。

:hover:鼠标放到标签上的时候

:active:鼠标点击标签,但是不松手时。

以上伪类选择器适用于所有的标签。

常见的伪类选择器‌代码示例如下:

动手练一练:

<!DOCTYPE html>
<html>
    <!--head头部.用来完成一个网页的相关设置-->
    <head>
        <!--汉字编码-->
        <meta charset="UTF-8">
        <!--网页标题-->
        <title>z-index属性</title>
        <style>
            /*让超链接点击之前是红色*/
            a:link{
                color:red;
            }

            /*让超链接点击之后是蓝色*/
            a:visited{
                color:blue;
            }

            /*鼠标悬停,放到标签上的时候是绿色*/
            a:hover{
                color:green;
            }

            /*鼠标点击链接,但是不松手的时候是黑色*/
            a:active{
                color:black;
            }

            /*正常显示为粉红色*/
            .myClass {
                color: pink;
                font-size: 40px;
            }

            /*鼠标悬停,放到标签上的时候是绿色*/
            .myClass:hover {
                color: green;
            }

            /*鼠标点击div,但是不松手的时候是黑色*/
            .myClass:active {
                color: black;
            }
        </style>
    </head>
 <body>
        <a href="https://www.example.com" target="_blank">这是一个超链接,点击这里访问示例网站</a>
        <div class="myClass">
            这是一个DIV“区块”
        </div>
 </body>
</html>

3、CSS的三种引入方式

CSS可以通过以下三种方式引入到HTML中:

‌内联样式‌:直接在HTML标签中使用style属性来设置样式,例如:<p style="color: red;">文本</p>。这种方式只对当前标签有效‌。

嵌入式样式‌:将CSS代码放在<style>标签内,通常放在<head>标签中,例如:<style>p { color: red; }</style>。

外部样式‌:将CSS代码保存在一个外部文件中,例如mystyle.css,通过<link>标签引入到HTML中,例如:<link rel="stylesheet" href="mystyle.css">。

4、CSS优先级

在复杂的网页布局中,当有多个CSS样式规则应用于同一个标签时,浏览器如何决定哪一套规则最终生效呢?CSS优先级就是用于解决多个样式规则应用于同一标签产生冲突的机制。优先级从高到低,按照如下顺序:

(1)内联样式

直接在HTML标签的style属性中定义的样式规则具有最高的优先级。例如:<div style="color: red;">内容</div>。

(2)ID选择器:

ID选择器使用“#”符号指定标签的ID,每个ID在页面中应该是唯一的,因此ID选择器的优先级仅次于内联样式。例如:#myId{color: red;}。

(3)类选择器:

类选择器使用“.”符号指定标签的类,用于定义标签的类别、属性或状态,类选择器的优先级低于ID选择器。例如:.myClass{color: red;}。

(4)标签选择器

选择器指定HTML的标签名称,优先级低于类选择器。例如:p{color: red;}。

(5)通用选择器(*):

通用选择器使用“*”匹配任何标签,优先级最低。

(6)!important声明

在CSS中可以使用!important声明样式,来提升某个样式规则的优先级,使其覆盖其他同级或更高级别的样式规则‌。这里需要注意的是,应该谨慎使用!important声明,因为它会打破正常的优先级规则。例如:p{ color:red !important; }

(7)CSS的层叠性和继承性

层叠性:同一标签的同一样式值被定义多次时,会发生样式规则的叠加,这时写在后面的样式会覆盖写在前面的样式,即样式的层叠。

继承性:CSS的继承性指的是一些属性可以从父标签继承到子标签。例如,文本颜色(color)和字体大小(font-size)可以被继承。

CSS优先级代码示例:

动手练一练:

<!DOCTYPE html>
<html>
    <!--head头部.用来完成一个网页的相关设置-->
    <head>
        <!--汉字编码-->
        <meta charset="UTF-8">
        <!--网页标题-->
        <title>CSS优先级</title>
        <style>
          p { color: blue; }

          .text { color: green; }

          #special { color: red; }

          .important { color: purple !important; }
        </style>
    </head>
    <body>
      <!-- 最终颜色将是orange,因为内联样式具有最高优先级 -->
      <p class="text" style="color: orange;">第一个标签:橙色</p>

      <!-- 最终颜色将是purple,因为!important提高了优先级 -->
      <p class="text important">第二个标签:紫色</p>

      <!-- 最终颜色将是green,因为类选择器优先级高于标签选择器 -->
      <p class="text">第三个标签:绿色</p>

      <!-- 最终颜色将是red,因为ID选择器的优先级高于标签选择器 -->
      <p id="special">第四个标签:红色</p>

      <!-- 最终颜色将是orange,因为内联样式的优先级高于ID选择器 -->
      <p id="special" style="color: orange;">第四个标签:橙色</p>

      <!-- 最终颜色将是red,因为ID选择器的优先级高于类选择器 -->
      <p id="special" class="text">第四个标签:红色</p>

      <!-- 最终颜色将是blue -->
      <p>第四个标签:蓝色</p>
    </body> 
</html>