HTML hr标签学习

系统 1665 0

文章摘抄 http://www.w3cplus.com/css/css-hr

 

<hr>标签是html4用来制作水平线的。如果你在网页制作中使用了<hr />标签来制作水平分隔线,你知道在没有样式设置的情况下,他是很难看的。<hr/>在各浏览器的显示常常是 100%的宽度,2px的高度,3D边框风格渲染 。默认情况是不太好看,或者也不符合你的网页风格,但是你给<hr/>标签设置了样式,这样他看起来就不会那么难看,同时也更能适合你的页面风格。但是,你千万要小心,因为有一些浏览器对<hr/>渲染出来的风格是不一样的。大家先来看一朋友在其页中运用的<hr/>在Firefox 和IE下的效果:

HTML hr标签学习

从上图中很明显得知,你在样式中设置<hr/>的边框样式,在各浏览器下显示是不一样的

      
        hr
      
      
        {
        
          
            border-top
          
          :
          
            
              1
            
            px solid 
            
              #ddd
            
            ;
          
        
        
          }
        
      
    

此时在IE下显示是1px的边框线;但在Firefox,Opera等浏览器下显示的却是2px的边框,如果你把边值从新设置:

      
        hr
      
      
        {
        
          
            border
          
          :
          
             none;
          
        
        
          }
        
      
    

此时效果又不一样,在Firefox,Opera等浏览器下不会显示任何边框,可是在IE下却照常有一条1px的细线显示。

上面是<hr/>线宽在浏览器下显示不一样,其实他的颜色设置也是不一样的: <hr/>在IE下是通过前景色“color”来控制他的颜色;而在Firefox和Opera等现代浏览器下只有背景色“background-color”才能控制他的颜色。换句话说,只有前景色和背景色设置一样时,他们才会显示一样的颜色。

      
        hr
      
      
        {
        
          
            color
          
          :
          
            red;
          
        
        
          }
        
      
      
        /*这样设置只会在IE下有效果*/
      
    
      
        hr
      
      
        {
        
          
            background-color
          
          :
          
             red;
          
        
        
          }
        
      
      
        /*这样设置只有Firefox和Opera等现代浏览器下有效果*/
      
    

所以为了达到各浏览器下显示效果一样,你需要对<hr/>同时设置前景色和背景色,并且他们的值要设置成相同的值:

      
        hr
      
      
        {
        
          
            color
          
          :
          
            red;
          
        
        
          
            background-color
          
          :
          
            red;
          
        
        
          }
        
      
    

这样下来,在Opera下还是无法工作,因为在给线条定色之前,Opera还需要给他定义一个高度:

      
        hr
      
      
        {
        
          
            color
          
          :
          
            red;
          
        
        
          
            background-color
          
          :
          
            red;
          
        
        
          
            height
          
          :
          
            
              1
            
            px;
          
        
        
          
            border
          
          :
          
            none;
          
        
        
          }
        
      
    

这样下来,你的<hr/>在各浏览器渲染将在达到一致的风格,不过在下建议最好在加上两个属性,这要在IE6下运行将更稳定:

      
        hr
      
      
        {
        
          
            color
          
          :
          
            red;
          
        
        
          
            background-color
          
          :
          
            red;
          
        
        
          
            height
          
          :
          
            
              1
            
            px;
          
        
        
          
            line-height
          
          :
          
            
              1
            
            px;
          
        
        
          
            font-size
          
          :
          
            
              0
            
            ;
          
        
        
          
            border
          
          :
          
            none;
          
        
        
          }
        
      
    

现在解决了<hr/>制线线条的粗细和颜色问题,最后他还有一个对齐问题,比如说你想让50%宽度的线条,左对齐或者右对齐,你肯定会想到使用float属性,进行左浮动或者右浮动,如:

      
        hr
      
      
        {
					
        
          
            color
          
          :
          
            red;
          
        
        
          
            background-color
          
          :
          
            red;
          
        
        
          
            height
          
          :
          
            
              1
            
            px;
          
        
        
          
            line-height
          
          :
          
            
              1
            
            px;
          
        
        
          
            font-size
          
          :
          
            
              0
            
            ;
          
        
        
          
            border
          
          :
          
            none;
          
        
        
          
            width
          
          :
          
            
              50
            
            %;
          
        
        
          
            float
          
          :
          
             right;
          
        
        
          }
        
      
    

这样下来在IE下是不能正常运行的,为了能让他在IE下正常工作,需要把代码改成:

      
        hr
      
      
        {
					
        
          
            color
          
          :
          
            red;
          
        
        
          
            background-color
          
          :
          
            red;
          
        
        
          
            height
          
          :
          
            
              1
            
            px;
          
        
        
          
            line-height
          
          :
          
            
              1
            
            px;
          
        
        
          
            font-size
          
          :
          
            
              0
            
            ;
          
        
        
          
            border
          
          :
          
            none;
          
        
        
          
            width
          
          :
          
            
              50
            
            %;
          
        
        
          
            float
          
          :
          
             right;
          
        
        
          
            display
          
          :
          
            block;
          
        
        
          /*改变hr的显示风格*/
        
        
          
            text-align
          
          :
          
            right;
          
        
        
          /*右对齐*/
        
        
          }
        
      
    

上面介绍了如何让<hr/>标签制作的水平分隔线能在所有浏览器下渲染成一样的风格。那么下面我们使用上面的知识和CSS3的渐变效果,来制作一些效果好看的分隔线。

首先来看第一个实例,制作普通的水平分隔线,代码如下:

HTML Markup

      
        <
        
          hr
        
        
          class
        
        =
        
          "normal"
        
         />
      
    

CSS Code:

      
        hr
      
      
        .normal
      
      
        {
					
        
          
            background
          
          :
          
            
              #ddd
            
            ;
          
        
        
          /*改变现代浏览器下线条色*/
        
        
          
            color
          
          :
          
            
              #ddd
            
            ;
          
        
        
          /*改变IE浏览器下线条色,最好和Background-color设置一样的色*/
        
        
          
            clear
          
          :
          
            both;
          
        
        
          /*可以用来清除浮动*/
        
        
          
            float
          
          :
          
             none;
          
        
        
          /*取消浮动,可以不设置*/
        
        
          
            width
          
          :
          
            
              100
            
            %;
          
        
        
          /*显式定义宽度*/
        
        
          
            height
          
          :
          
            
              1
            
            px;
          
        
        
          /*改变部分浏览器下的默认高度*/
        
        
          
            line-height
          
          :
          
            
              1
            
            px;
          
        
        
          /*保证IE下高度效果一致,不留白色空白区*/
        
        
          
            font-size
          
          :
          
            
              0
            
            ;
          
        
        
          /*设置为0,以确保IE6下不留空白区*/
        
        
          
            border
          
          :
          
             none 
            
              0
            
            ;
          
        
        
          /*取消默认边框,以背景和高度代替边框效果*/
        
        
          
            margin
          
          :
          
            
              0
            
            
              0
            
            
              1.4
            
            em;
          
        
        
          }
        
      
    

上面是制作普通水平分隔线的效果,如果你在你的制作中经常使用hr来制作水平线,你可以将其写入你的base.css样式中,下面我们接着来看两种CSS3制作的效果:两边淡化效果以及浮雕效果。

 

<hr>常规化状态下样式:

      
        hr
      
      
        {
					
        
          
            background
          
          :
          
            
              #ddd
            
            ;
          
        
        
          /*改变现代浏览器下线条色*/
        
        
          
            color
          
          :
          
            
              #ddd
            
            ;
          
        
        
          /*改变IE浏览器下线条色,最好和Background-color设置一样的色*/
        
        
          
            clear
          
          :
          
            both;
          
        
        
          /*可以用来清除浮动*/
        
        
          
            float
          
          :
          
             none;
          
        
        
          /*取消浮动,可以不设置*/
        
        
          
            width
          
          :
          
            
              100
            
            %;
          
        
        
          /*显式定义宽度*/
        
        
          
            height
          
          :
          
            
              1
            
            px;
          
        
        
          /*改变部分浏览器下的默认高度*/
        
        
          
            line-height
          
          :
          
            
              1
            
            px;
          
        
        
          /*保证IE下高度效果一致,不留白色空白区*/
        
        
          
            font-size
          
          :
          
            
              0
            
            ;
          
        
        
          /*设置为0,以确保IE6下不留空白区*/
        
        
          
            border
          
          :
          
             none 
            
              0
            
            ;
          
        
        
          /*取消默认边框,以背景和高度代替边框效果*/
        
        
          
            margin
          
          :
          
            
              0
            
            
              0
            
            
              1.4
            
            em;
          
        
        
          }
        
      
    

 

HTML hr标签学习


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论