2012-12-24 38 views
2

当HTML浏览器提供HTML内容并呈现它时,幕后会发生什么?如何定义HTML呈现的“默认样式”?

例如,如果浏览器遇到(比如说)<h1>标签,它如何首先查找定义的样式,如果不是,则默认为<h1>字体样式?何处/如何定义此默认样式?

+2

我专注于这个问题(标题):我可能已经删除了一些所需的信息,但我觉得这会使问题能够“保持”在不被关闭的情况下。 (在整个过程中使用了许多“技术”..) – 2012-12-24 05:41:21

+0

不够公平,谢谢:) –

+0

依赖于浏览器。他们有一个默认的渲染风格。你可以看到从IE和铬 – texasbruce

回答

0

想想浏览器作为语言翻译的。这里的语言是CSS,JS,HTML等。所以他们有内置的引擎来处理你的html标签并按照规范进行适当的渲染。

+0

我的问题恰恰与'内置引擎处理你的html标签'有关。你能举一个简单的例子来描述一个标签吗? –

3

实现用于呈现HTML的CSS的浏览器利用用户代理默认样式表(在级联中具有低优先级,使得它们在你自己的CSS中被覆盖)。这是他们如何在缺少作者样式表的情况下获取各种元素的默认样式。

一些供应商提供他们的UA默认样式表的源代码,以便您可以查看它们并查看默认情况下某些浏览器如何确定某些元素的样式。你可以在this question找到一些链接。

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

至于浏览器如何查找样式定义:这是一个非常广泛的问题,但主要涉及查看每个样式表以及任何内联样式属性,并相应地解析级联和任何其他环境约束,以便获取可用于实际绘图的值。级联本身是a semi-broad topic,浏览器如何解析CSS并实现级联解析是实现细节,因此高度依赖于您正在查看的浏览器。如果您对血淋淋的细节感兴趣,请致电Tali Garsiel has an incredible write-up of the entire process of receiving and displaying a Web page

0

根据我的经验,我没有问题。我还会说,Flash和php支持哪些目标支持CSS样式。