完美的兼容各个浏览器的HR,firefox,ie6,ie7已测
时间:2009-07-24 来源:yeahilly
兼容浏览器的完美hr:
border:none;border-top:1px solid Black;margin:0;*margin:0 0 -14px 0;float:none;*float:left;display:block;
1.hr元素是一个块级元素,是一个box,有border
2.高度:size和style.height.
ie和firefox对size解释和计算是不同的,所以最好不用size,用height,但是会出现一个有边框的box,所以将border:none.
firefox下用了size就是实心的box,不用就是一个普通的块级元素。
3.颜色:color和style.border-color
height如果不大于2px是看不出这两个属性的区别的。
firefox:color=border-color,高度大于2的时候,会出现一个空心的box。
IE:对border-color不感冒,要使用border:1px solid Black;
<hr style="border:none;border-top:1px solid #0a94d6;margin:0;*margin:0 0 -14px 0;float:none;*float:left;display:block;"/>
4.边距
hr在firefox下没有默认边距(即使有用margin:0也可以将其消除)
hr在ie下有默认的上边距14px和下边距14px(即使将margin:0),用float来消除margin-top(请用*float,或者用width然后再float.)
然后在使用css hack对ie设置一个margin-bottom:-14px,这样下面的元素就会上移14px,就好像把hr下面的边距消除了一下。
ps:hr在firefox下居然是圆角的,而且如果将hr的高和宽设置相同的值,就可以得到一个圆(实心或空心)哦。
其实说了这么多,还是将hr当成一个div还使用了,而且还是一个不同浏览器解析起来有很大差异的诡异的div,所以使用hr还不如直接用div的border那。
但是从目前很流行的标签语义化来说还是应该使用hr。