html是由一系列的元素(elements)组成,这些元素可以用来包围不同部分的内容,使其以某种方式呈现或工作。
“标签(tags)、标记”是元素的其他叫法。
元素的结构:
元素 = 起始标记(begin tag) + 元素属性 + 元素内容 + 结束标记(end tag);
示例:
<p name="value">岁寒时深,加衣勿病。</p>
- 开始标签(Opening tag):包含元素的名称(本例为 p),被左、右角括号所包围。表示元素从这里开始或者开始起作用 —— 在本例中即段落由此开始。
-
属性:属性 = 属性值 + 属性名;属性包含元素的额外信息,这些信息不会出现在实际的内容中。
属性总是以名称值对的形式出现,比如:name="value";属性一般描述于开始标签;属性可以在元素中添加附加信息;
属性的分类:
- 全局属性:所有元素通用的属性。
- 局部属性:某些元素特有的属性。
- 内容(Content):元素的内容,本例中就是所输入的文本"岁寒时深,加衣勿病。"。
- 结束标签(Closing tag):与开始标签相似,只是其在元素名之前包含了一个斜杠。这表示着元素的结尾 —— 在本例中即段落在此结束。
总结:元素(Element):开始标签、结束标签与内容相结合,便是一个完整的元素。
元素的名称类别:
父元素、子元素、祖先元素、后代元素、兄弟元素(拥有同一个父元素的两个元素)。
元素的类型:
块级元素:块级元素在页面中以块的形式展现 —— 相对于其前面的内容它会出现在新的一行,其后的内容也会被挤到下一行展现。块级元素会导致内容换行。
行级元素:内联元素通常出现在块级元素中并环绕文档内容的一小部分,而不是一整个段落或者一组内容;内联元素不会导致内容换行。
行块级元素:既拥有块级元素的特点同时也拥有行级元素的特点。
面试题:
1. 请列举出块级元素和行级元素,它们之间有什么特点或区别?
答:
块级元素有:div、h1~h6、p、ul、li、ol、section、header、footer、nav、article、aside、form、address等。
行级元素有:span、strong、em、a、del、b、i等。
特点或区别?
块级元素默认的display为block,独占一行,可以通过css改变宽高。
行级元素默认的display为inline,元素不独占一行,不可以通过css改变宽高,宽高由内容决定。
补充:行块级元素有 img 、video 、input 、select 、textarea等。特点是 行块级元素默认的display为inline-block,元素内容决定大小,可以通过css改变宽高。
2. 常见的浏览器及其内核有哪些?
答:
IE的内核:trident;
Firefox的内核:Gecko;
Google chrome的内核:Webkit / blink;
safari的内核:Webkit;
Opera的内核:presto;
简述一下你对浏览器内核的理解?
浏览器内核主要分成两部分:渲染引擎(layout engineer 或 rendering engine)和 js引擎。
渲染引擎:主要负责取得网页内容(html、xml、图像等)、整理讯息(例如 加入css样式等)、以及计算网页的显示方式,然后会输出到显示器或打印机。
浏览器内核的不同对于网页的语法解释也会有不同,所以渲染引擎的效果也不同。所有网页浏览器、电子邮件客户端以及其它需要编译、显示网络内容的应用程序都需要内核。js引擎:负责解析和执行JavaScript来实现网页的动态效果。
3. 什么是标签语义化?作用是什么?
答:
根据内容的结构化(内容语义化),选择合适的标签,便于开发者阅读和写出更优雅的代码的同时,让浏览器的爬虫和机器很好的解析。
1)每一个html元素都有具体的含义。
2)所有元素与展示效果无关;元素展示到页面中的效果,应该由css决定;元素决定了里面的内容是什么含义的,因为每个浏览器都带有默认的css样式,所以每个元素有一些默认样式。
注意:选择了什么元素,取决与内容的含义,而不是显示效果。
语义化的作用?
答:
1)使页面结构更清晰;去掉或css样式丢失的时候,也能让页面呈现清晰的结果,增强页面可读性。
2)支持更多的设备;方便其他设备解析(如屏幕阅读器、盲人阅读器、移动设备)和渲染网页。
3)利于SEO优化;和搜索引擎建立良好沟通,有助于爬虫抓取更多有效的信息,搜索引擎爬虫也依赖于标记确定上下文和各个关键字的权重。
4)便于团队开发和维护;在团队中大家都遵循w3c标准,可以减少很多差异化的东西,方便开发和维护,提高开发效率,甚至实现模块化开发。
简述一下你对语义化的理解。
答:
- 语义化让页面的内容结构化,结构更清晰,便于对浏览器、搜索引擎解析。
- 即使在没有样式css的情况下也能以一种文档格式显示,并且是容易阅读的。
- 搜索引擎的爬虫也依赖于html标记来确定上下文和各个关键字的权重,有利于seo。
- 使阅读源代码的人更容易将网站分块,便于阅读、维护和理解。