HTML5 新模块元素兼容问题

  • 新增块元素默认样式
    下列HTML5新模块元素在IE8、9版本浏览器中没有被定义默认样式。为解决该问题,给下列元素添加“block”显示属性。

    代码:

    article,
    aside,
    details,
    figcaption,
    figure,
    footer,
    header,
    hgroup,
    main,
    nav,
    section,
    summary {
        display: block;
    }
    
  • 特殊新增块元素
    下列HTML5新模块元素在IE8、9版本浏览器中没有被定义默认样式,考虑到其特殊性,特为下列元素添加“inline-block”显示属性。

    代码:

    audio,
    canvas,
    video{
        display:inline-block;
    }
    
  • 去除水平空隙方案

    代码:

    display:inline-block; *display:inline; *zoom:1;
    

    *关于inline-block的详细说明, 点此详情

  • 音频模块兼容性问题
    为防止主流浏览器中,显示“不带控制按钮的音频模块”这一问题。

    以及解决iOS5移动端显示多余高度的兼容性问题。

    代码:

    audio:not([controls]) {
        display: none;
        height: 0;
    }
    
  • 特殊模块样式处理
    处理 IE 8/9 中未定义的样式。

    代码:

    [hidden]{
        display:none;
    }
    

Global 全局基本设置

  • 默认字体设置,边距设置

代码:

html {
    font-family: sans-serif; /* 默认字体 */
    font-size: 100%; /* 在用户调整窗口大小时,字体大小做相应调整。 */
    -ms-text-size-adjust: 100%; /* IE浏览器 */
    -webkit-text-size-adjust: 100%; /* FireFox浏览器 */
}
  • 去除默认边距

代码:

body{
    margin: 0; /* 外边距 */
    padding: 0; /* 内边距 */
    border: 0; /* 边框 */
}
  • 链接相关样式

代码:

a {
    text-decoration: none; /* 去除默认下划线 */
}

a:focus {
    outline:thin dotted; /* 处理“outline”在Chrome浏览器中和其它浏览器之间的不一致 */
}

a:active, a:hover {
    outline: 0;
}
  • 排版相关样式

代码:

h1 { /* 使h1标签在section标签和article标签的留白和字体样式统一。可同时兼容Firefox 4+、Safari 5和Chrome等不同的浏览器 */
    font-size: 2em;
    margin: 0.67em 0;
}

abbr[title] {
    border-bottom: 1px dotted;
    /* 解决首字母样式在IE8/9、Safari 5和chrome浏览器中未定义的问题 */
}

b,
strong {
    font-weight: bold; /* 添加加粗样式,应用于Firefox 4+、Safari 5和Chrome */
}

dfn {
    font-size:italic; /* 添加斜体样式,应用于Safari 5和chrome */
}

hr {    /* 解决其在Firefox中的兼容性问题 */
    -moz-box-sizing: content-box;
    box-sizing: content-box;
    height: 0;
}

mark { /* 解决其在IE8/9中样式未定义的问题 */
    background: #ff0;
    color: #000;
}

code,
kbd,
pre,
samp { /* 更正关联字体在Safari 5和Chrome中的老式设置 */
    font-family: monospace, serif;
    font-size: 1em;
}

pre { /* 提高pre标签格式化文本在所有浏览器中的可读性 */
    white-space: pre-wrap;
}

q { /* 设置相一致的引号类型 */
    quotes: "\201C" "\201D" "\2018" "\2019";
}

small { /* 统一所有浏览器中字体大小不一致的兼容性问题 */
    font-size: 80%;
}

sub,
sup { /* 在所有浏览器中,防止“sub”和“sup”标签影响“line-height”属性 */
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

sup {
    top: -0.5em;
}

sub {
    bottom: -0.25em;
}
  • 内嵌文本相关样式

代码:

img {
    border: 0; /* 在IE8/9浏览器中,当img标签中包含a标签时,去除img边框属性。 */
}

svg:not(:root) {
    overflow: hidden;
}
  • 图片特写相关样式
    "figure"标签规定独立的流内容(图像、图表、照片、代码等等)

    代码:

    figure {
        margin: 0;
    }
    
  • 表单相关样式

代码:

fieldset { /* 定义一致的边框、内边距和外边距 */
    border: 1px solid #c0c0c0;
    margin: 0 2px;
    padding: 0.35em 0.625em 0.75em;
}

legend {
    border: 0; /* 更改“color”属性在IE8/9浏览器中没有被继承的问题 */
    padding: 0; /* 去除外边距,如此即使人们将字段集归零也不会失去样式 */
}

button,
input,
select,
textarea {
    font-family: inherit; /* 更改关联字体属性在IE8/9浏览器中没有被继承的问题 */
    font-size: 100%; /* 更改字体大小属性在IE8/9浏览器中没有被继承的问题 */
    margin: 0; /* 调整边距设置在Firefox 4+, Safari 5, 和 Chrome浏览器中的兼容性问题 */
}

button,
input {
    line-height: normal;
    /* 调整Firefox 4+浏览器下,客户端样式表中设置了“!important”的“line-height”属性的input表单 */
}

button,
select {
    text-transform: none;
    /**
     * 调整“button”和“select”的“text-transform”继承不一致性的问题
     * 其他表单控件元素不继承“text-transform”属性
     * 修正“button”标签在Chrome, Safari 5+, and IE 8+中的样式继承问题
     * 修正“select”标签在Firefox 4+ 和Opera中的样式继承问题
     */
}

button,
html input[type="button"], /* 避免webKit bug发生在Android 4.0.* 设备上,破坏原生“audio”和“video”控制组件 */
input[type="reset"],
input[type="submit"] {
    -webkit-appearance: button; /* 改正iOS设备中“input”类型表单样式不可用的问题 */
    cursor: pointer; /* 增强光标样式在input表单和其他表单的可用性和一致性 */
}

button[disabled],
html input[disabled] {
    cursor: default; /* 为禁用表单重设定默认光标样式 */
}

input[type="checkbox"],
input[type="radio"] {
    box-sizing: border-box; /* 调整IE 8/9中尺寸属性设置为“内容框”的盒子模型 */
    padding: 0; /* 去除IE 8/9中的多余的外边距留白部分 */
}

input[type="search"] {
    -webkit-appearance: textfield; /* 兼容Safari 5 and Chrome上 “searchfield” 上设置 “appearance”属性 */
    -moz-box-sizing: content-box;
    -webkit-box-sizing: content-box; /* 兼容Safari 5 and Chrome上 “border-box” 上设置 “box-sizing”属性 */
    box-sizing: content-box;
}

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;   /* 去除OS X系统上Safari 5和Chrome中容器内边距和搜索取消按钮属性 */
}

button::-moz-focus-inner,
input::-moz-focus-inner { //Firefox 4+浏览器中,去除容器内边距和边框属性
    border: 0;
    padding: 0;
}

textarea {
    overflow: auto; /* IE 8/9中,去除默认垂直滚动条属性 */
    vertical-align: top; /* 提高所有浏览器中的文本可读性和版式 */
}
时间: 2024-10-10 09:10:50

HTML5 新模块元素兼容问题的相关文章

HTML5新媒体元素

新媒体元素 audio 示例 //controls表示向用户显示控件<audio controls> <source src="house.mp3"></audio> 标签定义和说明 定义音频(声音) 支持三种文件格式:MP3.Wav.Ogg 浏览器 支持 IE MP3 谷歌 3 火狐 3 欧朋 3 提示和注释  可以在 和 之间放置文本内容,这些文本信息将会被显示在那些不支持 标签的浏览器中. 属性 属性 描述 autoplay 音频自动播放 co

HTML5新特性:元素的classList属性与应用

在html5新增的classList之前, 操作元素的class用的是className这个属性,而如果要向jquery封装的hasClass, removeClass, addClass, toggleClass一样优雅的操作calssName, 在以前我们要对className封装处理,如下, 下面的代码你未必能看得懂运行流程,但应该能看懂功能部分,这几段函数是取自我录制的一套视频中,讲解DOM框架封装的一部分 gQuery.prototype.hasClass = function (ob

【html5】解决HTML5新标签不兼容的问题

html5标签: 1.语义化好 -> SEO a). 程序交流方便 b). 搜索引擎友好 baidu -> 不认识 google 2.本身不兼容,想兼容低版本,请使用如下方法: 方式一:使用Google的html5shiv包(推荐)<!--[if lt IE9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]--

HTML5 新属性placeholder 兼容ie

啥都不说了,直接上代码 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>无标题文档</title> 6 <script type="text/javascript" src="po

html5有哪些新特性、移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?

新特性: 1. 拖拽释放(Drag and drop) API 2. 语义化更好的内容标签(header,nav,footer,aside,article,section) 3. 音频.视频API(audio,video) 4. 画布(Canvas) API 5. 地理(Geolocation) API 6. 本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失: 7. sessionStorage 的数据在浏览器关闭后自动删除 8. 表单控件,calendar.date

【HTML5】如何处理HTML5新标签的浏览器兼容版问题

HTML5规范毕竟是刚刚才定义完成的规范,还有一些浏览器并不能支持其中的新标签和新属性,尤其是IE8及以下版本浏览器.以下介绍一些在页面中使用HTML5新标签的实践方法,目的是让HTML5中的新标签在低级浏览器中也得到有限的支持,不至于影响整个的页面功能. 让浏览器识别HTML5规范中的新标签 IE8浏览器中还没有添加对HTML5新标签的支持,所以在IE8中无法直接展现HTML5新标签中的内容.庆幸的是IE8/IE7/IE6支持通过document.createElement方法产生的标签,可以

html5有哪些新特性?如何处理html5新标签的浏览器兼容问题?如何区分html和html5?

h5新特性: 语义化标签:<hrader></header> .<footer></footer>.<nav></nav>.<section></section>.<article></article>.<aside></aside>.<video></video>.<audio></audio> 新增表单元素:em

html5新标签及废弃元素

html5新标签 <canvas> 新元素 标签 描述 <canvas> 标签定义图形,比如图表和其他图像.该标签基于 JavaScript 的绘图 API 新多媒体元素 标签 描述 <audio> 定义音频内容 <video> 定义视频(video 或者 movie) <source> 定义多媒体资源 <video> 和 <audio> <embed> 定义嵌入的内容,比如插件. <track>

HTML5有哪些新特性,移除了哪些元素?如何处理HTML5新标签的浏览器兼容性问题?如何区分HTML和HTML5?

HTML5现在已经不是SGML的子集,主要是关于图像,位置,存储,多任务等功能的增加. 绘画canvas: 用于媒介回放的video和audio元素: 本地离线存储localStorage长期存储数据,浏览器关闭后数据不丢失: sessionStorage的数据在浏览器关闭后自动删除: 语义化更好的元素,比如article,footer,header,nav,section: 表单控件:calender,date,time,email,url,search 新的技术:webworker,webs