CSS是如何在幕后工作的

CSS是如何在幕后工作的

CSS(层叠样式表)是一种用于给网页添加视觉效果的样式表语言。它用于描述网页布局和HTML元素的显示。使用CSS可以节省大量时间。通过它,可以同时管理多个网页的布局。它使开发人员能够为不同的元素实现各种自定义属性,从而提高网页的外观。在本文中,我们将学习CSS以及它是如何工作的。

CSS基本上分为3种类型:

  • 外部CSS - 在每个页面上使用元素,link>标签位于head部分。如果您想一次对多个页面进行更改,可以使用外部样式表。在这种情况下它非常好,因为它可以通过修改一个文件来改变整个网站的外观。

  • 内联CSS - 如果单个HTML页面具有独特的样式,可以使用内部样式表。head部分的<style>元素包含内部样式的定义。

  • 内部CSS - 使用内联样式为单个元素提供独特的外观。通过将style属性添加到适当的元素来使用内联样式。style属性是任何CSS属性的容器。

语法

selector{
   property: value;
}

示例

下面是一个在HTML页面中使用CSS的示例。这里我们使用的是内联CSS。h1元素有下划线,而div元素是绿色的。

<!DOCTYPE html>
<html>
<head>
   <title> Using CSS within a HTML page </title>
   <style>
      h1{
         text-decoration: underline;
      }
      div{
         width: 30%;
         height: 30px;
         background-color: green;
      }
   </style>
</head>
<body>
   <h1> Inline CSS </h1>
   <div> This is an example. </div>
</body>
</html>

为什么我们要使用CSS

  • 节省时间 - 它提供了大量节省时间的好处。由于CSS样式定义保存在单独的CSS文件中,修改其中一个文件可能会影响整个网站。

  • 多种属性 - 与纯HTML相比,CSS提供了更精确的选项来确定网站的外观和感觉。

  • 快速加载页面 - 使用CSS时,不总是需要编写HTML标签属性。可以只为一个标签编写一条规则,并应用于该标签的所有实例。由于CSS使用的代码较少,下载速度更快。

  • 网站维护 - 网站需要它来进行维护。通过仅更改样式,如果我们需要对文件进行全局修改,网页上的所有组件都将立即更新。由于CSS文件的灵活性,网站的设计可以轻松修改。

  • 多设备兼容性 - 由于CSS之前的语言版本通常与其兼容,因此我们可以与之一起使用CSS。因此,如果CSS应用程序是使用较早版本的编程语言创建的,并且开发人员将其与更新的开发进行合并,可以轻松地将CSS与所需的调整集成在一起,从而成功更新现有代码。使用CSS可以适应多种设备类型的内容。

CSS的工作原理

计算给定HTML元素的最终CSS属性的实际过程是一系列非常复杂的步骤:

数据收集

在这个阶段,从用户代理、作者和用户等各种来源收集特定元素的所有样式声明。这些声明必须经过过滤和验证,以确定它们是否来自适用于此文档的样式表,并且具有语法上的有效性。

级联

CSS代表级联样式表,这是CSS的核心概念。这个阶段必须充分理解,因为它是唯一受开发人员(作者)影响较大的阶段。该阶段将在前一步收集到的无序声明列表根据以下几个标准进行优先级降序排列:

  • 基于声明来源的混合(用户代理、用户、作者、过渡、动画)和!important注释。

  • 基于选择器的特异性。

  • 基于书写顺序。

设置默认值

当没有样式声明时,当尝试为元素的CSS属性设置值时,会调用此步骤。

修复

为了在响应式设计中获得最大的灵活性,我们使用了几个相对单位(auto、em、rem、vh)、相对URL、百分比或某些可读性强的关键词(small、normal、bold)。本阶段将尝试解析尽可能多的属性值,而无需布局文档、执行网络查询或从父级之外的地方获取值。

格式化

这个阶段将格式化整个文档,并完成上一步剩下的工作,通过尝试计算文档布局中使用的绝对理论值。这个阶段关注的是元素的相对协调、自动布局和弹性布局等场景。它需要进行多次计算,但可以得到几乎完全可用的绝对数值供浏览器使用。

最终更改

在绘制之前,这个最后阶段将根据浏览环境(如浏览器引擎、媒体类型、设备像素密度或操作系统)执行几个修改。将浮点数舍入为整数值或根据可用字体更改字体大小是两个常见的更改。

结论

由于CSS层叠是CSS中最容易被误解的方面之一(并且经常是许多错误的源头),了解它的工作原理将为您在保持样式表可管理性方面提供重大优势。然而,更深入地了解CSS层叠也意味着更多的责任。层叠的更多特殊部分(如!important、内联样式和id选择器)会产生更难以在未来更改或覆盖的样式表。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

CSS 精选笔记