>>> from env_helper import info; info()
页面更新时间: 2024-01-14 10:18:50
运行环境:
    Linux发行版本: Debian GNU/Linux 12 (bookworm)
    操作系统内核: Linux-6.1.0-16-amd64-x86_64-with-glibc2.36
    Python版本: 3.11.2

5.3. CSS

层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。

我们可以把它看做成HTML的皮肤,CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。

5.3.1. 语言特点

CSS为HTML标记语言提供了一种样式描述,定义了其中元素的显示方式。CSS在Web设计领域是一个突破。利用它可以实现修改一个小的样式更新与之相关的所有页面元素。

CSS具有以下特点:

  • 丰富的样式定义

CSS提供了丰富的文档样式外观,以及设置文本和背景属性的能力;允许为任何元素创建边框,以及元素边框与其他元素间的距离,以及元素边框与元素内容间的距离;允许随意改变文本的大小写方式、修饰方式以及其他页面效果。

  • 易于使用和修改

CSS可以将样式定义在HTML元素的style属性中,也可以将其定义在HTML文档的header部分,也可以将样式声明在一个专门的CSS文件中,以供HTML页面引用。总之,CSS样式表可以将所有的样式声明统一存放,进行统一管理。 另外,可以将相同样式的元素进行归类,使用同一个样式进行定义,也可以将某个样式应用到所有同名的HTML标签中,也可以将一个CSS样式指定到某个页面元素中。如果要修改样式,我们只需要在样式列表中找到相应的样式声明进行修改。

  • 多页面应用

CSS样式表可以单独存放在一个CSS文件中,这样我们就可以在多个页面中使用同一个CSS样式表。CSS样式表理论上不属于任何页面文件,在任何页面文件中都可以将其引用。这样就可以实现多个页面风格的统一。

  • 层叠

简单的说,层叠就是对一个元素多次设置同一个样式,这将使用最后一次设置的属性值。例如对一个站点中的多个页面使用了同一套CSS样式表,而某些页面中的某些元素想使用其他样式,就可以针对这些样式单独定义一个样式表应用到页面中。这些后来定义的样式将对前面的样式设置进行重写,在浏览器中看到的将是最后面设置的样式效果。

  • 页面压缩

在使用HTML定义页面效果的网站中,往往需要大量或重复的表格和font元素形成各种规格的文字样式,这样做的后果就是会产生大量的HTML标签,从而使页面文件的大小增加。而将样式的声明单独放到CSS样式表中,可以大大的减小页面的体积,这样在加载页面时使用的时间也会大大的减少。另外,CSS样式表的复用更大程度的缩减了页面的体积,减少下载的时间。

5.3.2. 工作方式

CSS是一种定义样式结构如字体、颜色、位置等的语言,被用于描述网页上的信息格式化和显示的方式。CSS样式可以直接存储于HTML网页或者单独的样式单文件。无论哪一种方式,样式单包含将样式应用到指定类型的元素的规则。外部使用时,样式单规则被放置在一个带有文件扩展名_css的外部样式单文档中。

行内样式

行内样式就是把 CSS 样式直接放在代码行内的标签中,一般都是放入标签的style属性中,由于行内样式直接插入标签中,故是最直接的一种方式,同时也是修改最不方便的样式。

<p style="background-color: #999900">行内样式</p>
  • 缺点:

    • 样式没有复用性,仅作用于当前元素,每一个标签要设置样式都需要添加 style 属性,工作量大。

    • 后期维护成本高,即当修改页面时需要逐个打开网站每个页面一一修改,不易于维护。

    • 添加如此多的行内样式,页面体积大。

  • 优点:

  • 修改部分样式时,不易产生错误

  • 写法比较简单,适用范围广

  • 优先级高

示例

<body style="background-color:yellow;">
<h2 style="background-color:red;">这是一个标题</h2>
<p style="background-color:green;">这是一个段落。</p>
</body>

内嵌样式

内嵌css样式就是把css代码放在特定页面的<head>部分中。类和ID可用于引用CSS代码,但它们仅在该特定页面上处于活动状态。每次页面加载时都会下载以这种方式嵌入的CSS样式,这样可以提高加载速度。在某些情况下使用内嵌样式表很有用,比如:向某人发送页面模板, 因为一切都在一个页面中,所以看到预览要容易得多。内嵌CSS要放在<style></style>标签之间。

<style type="text/css">
    p{
        text-align: left;  /*文本左对齐*/
        font-size: 18px;  /*字体大小 18 像素*/
        line-height: 25px;  /*行高 25 像素*/
        text-indent: 2em;  /*首行缩进2个文字大小空间*/
        width: 500px;  /*段落宽度 500 像素*/
        margin: 0 auto;  /*浏览器下居中*/
        margin-bottom: 20px;  /*段落下边距 20 像素*/
    }
</style>

外联样式

将CSS添加到html页面上最方便的方法可能就是将其链接到外部文件(.css文件)。这样,您对外部CSS文件所做的任何更改都将反映在你的网站上。外部CSS文件的引用要放在页面的<head>部分中。

<head>
    <meta charset="utf-8">
    <title></title>
    <link href="lianjie.css" type="text/css" rel="stylesheet" />
    <link href="lianjie-2.css" type="text/css" rel="stylesheet" />
</head>

样式优先级的比较(就近原则)

正常的引用样式下优先级的顺序为: 行内样式>内部样式>外部样式

样式规则是可应用于网页中元素,如文本段落或链接的格式化指令。样式规则由一个或多个样式属性及其值组成。内部样式单直接放在网页中,外部样式单保存在独立的文档中,网页通过一个特殊标签链接外部样式单。 名称CSS中的“层叠(cascading)”表示样式单规则应用于HTML文档元素的方式。具体地说,CSS样式单中的样式形成一个层次结构,更具体的样式覆盖通用样式。样式规则的优先级由CSS根据这个层次结构决定,从而实现级联效果。

HTML 样式标签

<style> 定义文本样式

<link> 定义资源引用地址

5.3.3. CSS中的class与id区别及用法

我们平常在用DIV CSS制作HTML网页页面时,常会用到class 和id来选择调用CSS样式属性

Class 在程序中称“类”,同时在CSS中的书面语也叫“类”。在CSS样式中以小写的“点” 即 “.”来命名 如: .css5{属性:属性值;} ,

而在html页面里则以class="css5" 来选择调用,命名好的CSS又叫css选择器。

如: .css5{属性:属性值;} 选择器在html调用为“<div class="css5">我是class例子</div>

而且class(类)在同一个html网页页面可以无数次的调用相同的class类,在这里例子里则可以在对应的网页里可以无数次调用选择“css5”。

这也说明class一般是用来调用css中的预配制属性的,比如说有一个预配制属性为如这里的“.class01{属性:属性值;} ”,

这样就可以像调用函数一样不用再一个网页页面里重复的配置一个“类”属性,而只需要写上一个class类选择,

就可以在同一个页面里任何位置调用选择具有相同的CLASS类。

ID是表示着标签的身份,在JS脚本中会用到id,当JS要修改一个标签的属性时,JS会将id名作为该标签的唯一标识进行操作。也就是说ID只是页面元素的标识,供其他元素脚本等引用。假如你的页面里出现了两个ID那JS效果特性较出现逻辑错误不知道依据哪个ID来改变其标签属性。 在CSS里的ID不一定为JS而设置的,但是同样ID在页面里也只能出现一次,并且是唯一性。虽然可能我们才学DIV+CSS爱好者在一个页面里同时调用相同的ID多次但是仍然没有出现页面混乱错误,但是我们为了W3C及各个标准我们也要遵循ID在一个页面里唯一性。以免出现浏览器兼容问题。

Div CSS 页面中的ID是怎么个用法呢?

通常我们在CSS样式定义的时候 以“#”来开头命名id名称如:#css5{属性:属性值;}

CSS里的ID用法与class用法一样,只是把class换成id。

如例子:在CSS样式定义ID #css5{height:25px;width: 200px;} ,调用ID <div id="css5">我是ID例子</div>

以下为完整关于CLASS和ID实例

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>DIV CSS中CLASS与ID实例 - -DIV+CSS-www.divcss5.com</title>

<style>
.css5{ width:100px; height:100px; border:1px solid #000; float:left; }
.css5_class{ background:#FFF;} /* 背景白色 */
#css5_id{ background:#FF0000;} /* 背景红色 */
</style>

</head>

<body>
<div class="css5 css5_class">我在浏览器下浏览,内容背景将是白色</div>
<div class="css5" id="css5_id">我在浏览器下浏览,内容背景将是红色</div>
</body>

</html>

特别注意:在命名id和class类的时候特别要注意大小写,ID和class是对大小写非常敏感的,最好以英文开头,不要用中文命名CSS类名。