代码之家  ›  专栏  ›  技术社区  ›  Meep3D

删除IE上的<hr/>边框样式

  •  16
  • Meep3D  · 技术社区  · 15 年前

    为什么最简单的事情总是搞得一团糟?无论如何,我想用一个有点像§-符号(在它的一边)的图像来替换一条普通的HR线。努力使它看起来优雅:)

    实际上,在IE中消除边框的唯一方法似乎是设置color:css值。不幸的是,这样做会覆盖设置为背景图像的内容,并使整个HR成为颜色的参数。

    不可能将它包装在一个DIV中,甚至不可能将类真正应用于它,因为将要使用该站点的客户机使用的是WYSIWYG文本编辑器,我真的不喜欢黑客来插入一个DIV包装的HR。

    我离用jquery添加一个DIV块包装器还有一步之遥,但这看起来根本是错误的(shotgun vs walnut)-有什么建议吗?

    4 回复  |  直到 10 年前
        1
  •  27
  •   allicarn 0x1gene    12 年前

    http://blog.neatlysliced.com/2008/03/hr-image-replacement/

    <style type="text/css">
        hr {
           background: url(http://placekitten.com/800/100) no-repeat;
           border: 0;
           height: 100px;
           width: 100%;
        }
    </style>
    <!--[if IE 7]>
    <style type="text/css">
        hr {
            display : list-item;
            list-style : url(http://placekitten.com/800/100) inside;
            filter : alpha(opacity=0);
            margin-left: -10px;
            width : 0;
        }
    </style>
    <![endif]-->
    

    看它在这里工作: jsFiddle

        2
  •  1
  •   Peter    15 年前

    好吧,您可以直接插入图像,而不使用<hr/>标记。不过,我敢肯定,只要将边框更改为背景颜色,就可以消除这种冒犯性边框。我的意思是,它并没有真正消失,但至少它在隐藏:

    hr{
       border: #XXXXXX;
    }
    
        3
  •  1
  •   Ryan Florence    15 年前

    IE8,幸运的是事情做得很好。所以在12年后还有希望。

    如果背景色是纯色,只需将边框定义为该颜色,它就会消失。

        4
  •  1
  •   Eugene Bulkin    15 年前

    你可以把边框的颜色改成透明的-我想这也行。

    否则,您应该只使用图像本身并废弃<hr/>标记。