开发经验细碎点
border-radius 针对 table 失效
如果table设置了 border-collapse: collapse;(边框可并)样式时,border-radius就会无效. 除此之外可以应用到所有元素.
解决办法: 外边在套一层div
border 针对tr无效
原因: td没有边框,把tr设的边框给覆盖掉了
解决办法: 给td设border,或给table设border
获取dom元素
getElementById和getElementsByTagName 可以兼容到IE 5.5, 适用于IE 6 以上.
document.querySelector和document.querySelectorAll可以兼容IE 8
getElementsByClassName只兼容到IE 9 以上.
使用如下meta标签使IE浏览器使用谷歌浏览器内核或最高版本的IE
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
使用媒体查询引入不同的CSS文件(兼容不同屏幕)
<link rel="stylesheet" type="text/css" media="screen and (min-width: 479px) and (max-width: 639px)" href="css/pic480.css">
如何解决IE8以下兼容html5标签
<!-- 条件引入html5.js -->
<!--[if lt IE 9]>
<script src="js/html5.js"></script>
<![endif]-->
<!-- 条件引入线上html5文件 -->
<!--[if lt IE9]> -->
<script src="[http://cdn.bootcss.com/html5shiv/r29/html5.min.js](http://cdn.bootcss.com/html5shiv/r29/html5.min.js)"></script>
<![endif]-->
<!-- cdnjs -->
<!--[if lt IE 9]>
<script src="[https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.js](https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.js)"></script>
<![endif]-->
但是如果ie6/7/8 禁用脚本的用户,那么就变成了无样式的"白板"网页,我们该怎么解决呢?
我们可以参照facebook的做法,即引导用户进入带有noscript标识的 “/?_fb_noscript=1”页面,用 html4 标签替换 html5 标签,这要比为了保持兼容性而写大量 hack 的做法更轻便一些。<!--[if lte IE 8]>
<noscript>
<style>.html5-wrappers{display:none!important;}</style>
<div class="ie-noscript-warning">您的浏览器禁用了脚本,请 <a href="">查看这里</a> 来启用脚本!或者<a href="/?noscript=1">继续访问</a>.
</div>
</noscript>
<![endif]-->
在IE9以下的浏览器将创建h5标签,,但是要在css中将这些元素均设为**块级元素**,因为h5标签在低版本IE中默认为内联元素
<!--[if lt IE9]>
<script>
(function() {
if(!0)
return;
var e = "abbr, article, aside, audio, canvas, datalist, details, dialog, eventsource, figure, footer, header, hgroup, mark, menu, meter, nav, output, progress, section, time, video".split(', ');
var i= e.length;
while(i--){
document.createElement(e[i])
}
})()
</script>
<![endif]-->
IE低版本兼容CSS3属性
解决方案: 使用 ie-css3.htc 文件
使用方法: 在要使用C3的元素样式中按以下方法引入: behavior: url(ie-css3.htc);
问题和必要的说明
毕竟不是浏览器自带的属性, 方法有一定局限性,注意事项如下:
- 当前元素一定要有定位属性,像是position:relative或是position:absolute属性。
- z-index值一定要比周围元素的要高,否则……只能说抱歉了~~
所支持的样式
- border-radius
- box-shadow
- text-shadow
IE中button的type属性默认值: button,其他浏览器默认type:submit
IE10及以下input回车时,浏览器默认会执行页面中的第一个button的click事件,如要避免可将button标签改为input且type设为button类型,或者页面顶端写一个空的button标签且用父盒子包裹,父盒子宽高设为0将其隐藏。
利用C3限制div内文字字数
overflow: hidden;
display: -webkit-box;
text-overflow: ellipsis; //文字隐藏后添加省略号
-webkit-line-clamp: 3; //控制行数
-webkit-box-orient: vertical; //子元素垂直排列
- 限制文字在一行内显示
overflow: hidden; //溢出隐藏(指定宽度)
white-space: nowrap; //默认在不换行
text-overflow: ellipsis; //超出部分显示省略号
清除浮动遇到的问题
overflow: hidden; 只适合子元素没有设置position的元素,,否则超出父盒子高的部分将被截掉
解决方法: 使用添加如下类的方法
/*清除浮动*/ .clearfix:before, .clearfix:after{ content: ""; display: table; } .clearfix:after{ clear: both; } .clearfix{ *zoom: 1; /*IE/7/6*/ }
/*清除浮动代码*/ .clearfix:after{ content:""; display:block; clear:both; visibility:hidden; height:0 } .clearfix{ zoom:1 }