我试图提出一个比“浏览器如何工作?”更具体的问题,请耐心等待:)
如果我理解正确,html元素可能有一些确定其行为的默认属性。例如,<div>
默认设置了display: block
属性,而span
有display: inline
存在这些默认值是因为它们是在浏览器的默认样式表中定义的。
好的很酷,我明白了(希望如此)。但是<br />
或<img>
呢?那些人的行为是由他们的财产决定的吗? 是否仅仅取决于浏览器的实现,使它们表现出W3 html5规范应该如何表现?
此外,是否有关于此类元素行为的官方说法,还是仅仅属于“浏览器实施”?
答案 0 :(得分:1)
所以,你真的在这里提出两个问题:
让我们从问题2开始
HTML规范由W3C中名为HTML Working Group的小组编写和审核。当他们就规范达成一致意见时,他们会将其作为推荐标准发布。你可以阅读HTML 5规范here,但我不建议阅读整篇文章 - 它很长,而且无聊充满了技术术语。
但是,W3C的建议仅定义了HTML功能的语法和预期用途 - 它没有定义浏览器应如何呈现HTML。浏览器供应商,如微软(IE),Mozilla(FireFox),Apple(Safari)和谷歌(Chrome),可以确定他们的浏览器如何呈现和实现HTML的功能。
幸运的是,从浏览器到浏览器,大多数常见HTML元素的行为几乎完全相同。供应商的最佳利益是保持彼此之间的一致性,因为如果他们中的一个决定与其他所有人做出截然不同的事情,那么构建网站的人将不得不花更多的时间来支持这一点。特定的浏览器,它将失宠(就像IE 6直到IE 11的情况一样)。
什么决定了HTML元素的行为?
浏览器的渲染引擎。有些浏览器共享相同的渲染引擎(如Safari和Chrome)(不再是真的 - 请参阅注释),但不是全部。 This article提供了有关浏览器构建方式的一些见解(并提供了更多见解),here's列出了几个浏览器引擎的文章。
在大多数情况下,您可以通过更改其CSS属性来影响HTML文档外观的方式,但如果不使用JavaScript编写脚本,大多数HTML元素的行为是不可更改的。
浏览器应用的默认CSS样式由名为User Agent Stylesheet的样式表定义。这些通常是浏览器供应商设计的非常基本的样式,以使HTML文档更具可读性,而不会对文档的显示产生严重影响。
然而,不同的浏览器应用了很多基本样式,对于Web开发人员/设计人员而言,它们被称为CSS重置是非常常见的。 Normalize.css就是一个很好的例子,它是最受欢迎的一个。
答案 1 :(得分:-1)
我认为这取决于浏览器的实现。 将出现在屏幕上的方式由浏览器实现决定。 虽然,所有浏览器都同意应该在屏幕上显示的方式。 这些标准由World Wide Web Consortium - (wikipedia)定义。
我想这些信息可以在这些网站上找到!