当Web浏览器提供HTML内容并呈现它时,幕后的情况如何?
例如,如果浏览器遇到<h1>
标记,它首先查找定义的样式,如果不是默认的<h1>
字体样式?在何处/如何定义此默认样式?
答案 0 :(得分:3)
实现用于呈现HTML的CSS的浏览器使用用户代理默认样式表(在级联中具有较低的优先级,使得它们在您自己的CSS中可以轻松覆盖)。这是他们在没有作者样式表的情况下获取各种元素的默认样式的方法。
有些供应商提供了他们的UA默认样式表的源代码,因此您可以查看它们,并查看默认情况下某些浏览器如何确定某些元素的样式。您可以在this question找到一些链接。
大多数浏览器都提供用户样式表功能,您可以在其中编写适用于所有网站的CSS(或仅通过@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。
答案 1 :(得分:0)
将浏览器视为语言解释器。这里的语言是CSS,JS,HTML等。所以他们有内置的引擎来处理你的html标签并按照规范适当地渲染它。
答案 2 :(得分:0)
根据我的经验,我很好。我还要说明哪些目标使用Flash和php支持CSS样式。