2

What goes behind the scene when a web browser is served with HTML content and it renders it?

For example, if the browser encounters, say, an <h1> tag, how does it first look for a style defined and if not goes for the default <h1> font style? Where/How is this default style defined?

4

3 回答 3

3

实现 CSS 以呈现 HTML 的浏览器使用用户代理默认样式表(在级联中具有低优先级,因此在您自己的 CSS 中覆盖它们很简单)。这就是他们在没有作者样式表的情况下获取各种元素的默认样式的方式。

一些供应商提供了他们的 UA 默认样式表的源代码,因此您可以查看它们并了解某些浏览器在默认情况下如何准确地设置某些元素的样式。您可以在这个问题中找到一些链接。

大多数浏览器都提供用户样式表功能,您可以在其中编写适用于所有网站(或仅适用于特定网站,通过@document规则)的 CSS。这是!important常用且可接受使用的地方,因为作者样式(即来自网站本身的样式)通常会覆盖用户样式。您通常根本不想修改浏览器的用户代理样式表,即使它是开源的,除非您打算将其分叉成全新的东西并且您需要添加特定于该分叉的样式。

至于浏览器如何查找样式定义:这是一个非常广泛的问题,但它主要涉及查看每个样式表以及任何内联样式属性并相应地解决级联和任何其他环境约束,以获得一个值它可以用于实际绘图。级联本身是一个半广泛的话题,浏览器如何解析 CSS 并实现级联解析是一个实现细节,因此高度依赖于您正在查看的浏览器。如果您对血腥细节感兴趣,Tali Garsiel 对接收和显示网页的整个过程进行了令人难以置信的记录

于 2012-12-24T06:39:10.407 回答
0

将浏览器视为语言解释器。这里的语言是 CSS、JS、HTML 等。所以他们有内置的引擎来处理你的 html 标签并根据规范适当地呈现它。

于 2012-12-24T05:44:58.650 回答
0

根据我的经验,我可以接受。我还要说明 Flash 和 php 支持哪些目标 tese CSS 样式。

于 2012-12-24T06:53:49.363 回答