语义标签举个例子,语义标签就是标签本身代表了一定的含义HTML4.01div:作为容器存在在网站布局中使用广泛

搜索引擎友好,但是搜索引擎更友好的依旧是内容p标签:段落

img标签:图片

。。。等等语义标签

语义性不强的:

HTML5部分新语义标签HTML5中有部分语义标签,在使用时十分简单,但是由于语义性更强,更利于开发者以及搜索引擎对于网页的理解。语义标签:标签名作用nav表示导航

header表示页眉

footer表示页脚

main文档主要内容

article文章

aside主题内容之外,侧边栏

实际应用如果我们布局如下页面

HTML5语义标记扩展 html5新增的语义标签_HTML5语义标记扩展

网页布局.pngHTML4.01中代码:由于篇幅问题,这里只贴出body内代码



  • 导航1
  • 导航2
  • 导航3

HTML5中代码:这里直接使用新学习的语义标签


导航1

导航2

导航3

使用HTML5中新的语义标签,内容更为直观,即使删除了注释,依旧能够看出该标签的作用,语义性更强


说的通俗一些,内容一样,但是代码更少了

H5新语义标签兼容性虽然HTML5为我们提供了很多一些新的语义标签,但老版本的浏览器并这些内容,比如iE 8 及以下版本就不支持新语义标签

低版本IE显示问题测试代码html>

Title 
 
header{            height: 100px;            background-color: orangered;
}

低版本IE测试方式:如果使用的是高版本的iE,比如ie11其内部能够调节ie的显示版本

打开浏览器->F12呼出开发者界面->选择仿真->选择浏览器版本

HTML5语义标记扩展 html5新增的语义标签_HTML5语义标记扩展

ie_test.gif测试效果:在版本小于等于ie8时,header标签就无法显示

解决方案

js代码创建标签在页面中添加创建header标签的代码

修改header的样式,添加display:blockhtml>

Title 
 
header{            height: 100px;            background-color: orangered;
}
// 使用代码创建header标签,创建后是行内元素
//在低版本的ie中,如果想要显示h5的新语义标签,需要设置为block
var headerDom = document.createElement('header');      document.body.appendChild(headerDom);
headerDom.style.display = 'block';

优化代码执行--hack写法无论是js,或者js框架都需要执行js代码才能够解决兼容性问题,但是在高版本的浏览器中,那段js代码就没有必要执行了,所以我们通过一个叫做hack的方式来减少性能的浪费用法:使用 hack语法 将需要执行的js的代码包裹起来更多语法:

例如:IE6及IE6以下的IE5.x可识别

Emmet快捷键为: cc:ie6 +tab 键

*l:less

*g:greater

*t:than

*e:equal

IE6及IE6以下的IE5.x可识别

js框架直接导入js框架,js框架内部干的事情类似于帮助我们实现了创建 添加 displayblock的操作,但是处理的逻辑会多一些

html5shiv.min.js为压缩版js文件,较常用

通过条件注释让这个js文件 在指定的 IE版本中 才被加载使用js框架来解决html5新语义标签的IE浏览器兼容方法代码html>

Title 
 
header {            height: 100px;            background-color: #f40;
}

作者:Rella7