HTML5 新的语义标签
1.常用的语义标签
- 意义:语义标签便于阅读代码,也便于搜索引擎解析文档结构与内容
标签 | 含义 |
---|---|
article | 定义页面独立的内容区域 |
aside | 定义侧边栏内容 |
header | 定义了文档的头部区域 |
section | 定义文档中的区块 |
nav | 定义文档中的区块 |
footer | 定义 section 或 document 的页脚 |
2.兼容性
- IE8及IE8以下版本中,无法识别新标签,需要执行相关代码
- 解决办法就是:在页面渲染前,用js创建这些标签元素,再为其设置css样式
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Test</title>
<script>
document.createElement('header');
document.createElement('footer');
document.createElement('article');
document.createElement('aside');
document.createElement('section');
document.createElement('nav');
</script>
</head>
<body>
<header>我是header</header>
<footer>我是footer</footer>
<article>我是article</article>
<aside>我是aside</aside>
<section>我是section</section>
<nav>我是nav</nav>
</body>
</html>
这样ie8就可以正常识别新的语义标签了,但是默认渲染为行内元素,需要再为其设置css样式为块级元素
<style>
article,aside,header,section,nav,footer{
display:block;
}
</style>
3.第三方插件 html5shiv.js
- 由来:H5那么多的新标签,如果每个都要通过这种方法去生产的话,是不是太麻烦了呢
- 解决办法:直接借用前辈大牛封装好的js库 --- html5shiv.js
- 使用方法:直接引入标签即可(js代码必须在Dom渲染之前运行!!!)
<head>
<meta charset="UTF-8">
<title>Test</title>
<script src="https://cdn.bootcss.com/html5shiv/r29/html5.js"></script>
</head>
4.自定义标签
- 在高级浏览器中,默认能识别自定义标签,只是默认将其渲染为行内元素。
- 可以自己给这些自定义标签设置css属性
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Test</title>
<style>
yyy{
display: block;
}
</style>
</head>
<body>
<xxx>我是xxx标签的文本</xxx>
<xxx>我是xxx标签的文本</xxx>
<yyy>我是yyy标签的文本</yyy>
<yyy>我是yyy标签的文本</yyy>
</body>
<script>
// 获取第2个xxx标签
var xxx = document.getElementsByTagName("xxx")[1]
// 尝试操作样式
xxx.style.color = "red"
</script>
</html>
渲染结果: