语义化概念
- 每一个元素都有其特定的作用。
- 所有元素与展示效果无关,这一点特别容易混淆。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<h1 >第一个标题</h1>
<p>我是段落 </p>
</body>
</html>
运行效果为:
容易混淆,给人感觉标题元素就是加大加粗,段落元素和标题之间就是有空行分开。
但是在html5标准中,官方明确说明,所有元素的展示效果由css决定!
那为什么刚才的代码会造成标题元素就是加大加粗的效果?
是因为浏览器带有默认的css样式,尽管我们自己没有写css,浏览器渲染的时候会使用默认的css样式来完成。
事实上,如果浏览器没有默认的css样式,我们又没有写css,那页面根本无法展示出来。
选择使用什么元素,取决于内容的含义,而不是它显示的效果,因为效果和元素没有关系
我想加大加粗显示文本,就使用标题元素,这种想法是错误的!~
为什么需要语义化
1.为了搜索引擎优化(SEO)
2.为了让浏览器理解网页,这样浏览器的各类插件才能更好的正常工作。
HTML5特别强调语义化,为此过期了很多元素,也过期了很多元素中的属性,因为这些被淘汰的属性和元素,都牵涉到效果展示,和语义化相违背。
HTML5的目的之一,就是彻底分离历史上HTML与CSS间杂的情况,HTML只管定义元素,CSS只管展示效果。