浏览器如何呈现/应用 CSS
How does a browser render / apply CSS
标题可能有点误导,但我找不到更好的简短描述方式。
问题是,如果浏览器为相同的 属性 赋予多个值,那么他如何真正应用 CSS 规则。
让我们举个简单的例子:
.foo {
border-color: green;
border-bottom-color: black;
border-bottom-color: blue;
}
那么他是阅读整个 class (.foo) 并渲染它,还是像 "border-color: green;" 那样使用单个 属性 并渲染它,然后将底部渲染为黑色然后又是蓝色的?
我为什么要问这个?我想知道 classB 是否比 classA 更高效(见下一个示例),因为您将使用更少的代码来加载。但这只有在它不会一遍又一遍地呈现相同的 属性.
时才有意义
.classA {
border-top-color: black;
border-right-color: white;
border-bottom-color: black;
border-left-color: black;
}
.classB {
border-color: black;
border-right-color: white;
}
当浏览器显示文档时,它必须将文档的内容与其样式信息结合起来。它分两个阶段处理文档:
- 浏览器将HTML和CSS转换为DOM(文档对象模型)。 DOM 表示计算机内存中的文档。它将文档的内容与其样式相结合。
- 浏览器显示DOM的内容。
标题可能有点误导,但我找不到更好的简短描述方式。
问题是,如果浏览器为相同的 属性 赋予多个值,那么他如何真正应用 CSS 规则。
让我们举个简单的例子:
.foo {
border-color: green;
border-bottom-color: black;
border-bottom-color: blue;
}
那么他是阅读整个 class (.foo) 并渲染它,还是像 "border-color: green;" 那样使用单个 属性 并渲染它,然后将底部渲染为黑色然后又是蓝色的?
我为什么要问这个?我想知道 classB 是否比 classA 更高效(见下一个示例),因为您将使用更少的代码来加载。但这只有在它不会一遍又一遍地呈现相同的 属性.
时才有意义.classA {
border-top-color: black;
border-right-color: white;
border-bottom-color: black;
border-left-color: black;
}
.classB {
border-color: black;
border-right-color: white;
}
当浏览器显示文档时,它必须将文档的内容与其样式信息结合起来。它分两个阶段处理文档:
- 浏览器将HTML和CSS转换为DOM(文档对象模型)。 DOM 表示计算机内存中的文档。它将文档的内容与其样式相结合。
- 浏览器显示DOM的内容。