views:

584

answers:

4

Hey, in my quest to create as image light a site as possible, I'm looking to create two tone hr's.

I've achieved this in modern browsers, but want to achieve the same effect in ie6 and 7.

The current code I am using is

hr {
    border-bottom:1px solid #FFFFFF; 
    border-top:1px solid #dcdcdc; 
    clear:both; 
    height:0; 
    border-left:0px; 
    border-right:0px;
}

I've tried, with no success to make this work in ie6 and 7 without having to target the browsers specifically. Any thoughts?

(Heres my current project where I am employing this code, and looking to make it cross browser - http://www.qwibbledesigns.co.uk/preview/aurelius/ )

Cheers

Matt

+3  A: 

Try something like the following instead (and replace the <hr> with a <div>)

div {
    /* no need for border-left/right with the following: */
    border: none;
    border-bottom:1px solid #FFFFFF; 
    border-top:1px solid #dcdcdc; 
    clear:both; 
    height:0; 
    width: 100%;
}

(and don't forget to add an id or class to prevent all divs to look odd)

NOTE: this works on IE7, IE8 and on compliant browsers. Probably needs more tweaking for the 10 year old IE6, or even needs an image-hack (as so often).

Abel
That's worked in ie7, but in ie6, when I place the margin-bottom:20px; that I want on all <hr />'s, it add's the padding, but also puts space between the two borders. I tried setting line-height:0 which didnt work. I set font-size:0; and achieved making the gap between the borders much smaller, but still no cigar.You can view the results here; www.qwibbledesigns.co.uk/preview/aurelius/index.htmlAny thoughts?
Qwibble
getting things to work in IE6 requires a different ballgame (and a lot of frustration and time, which is why so many companies leave IE6 alone). Consider fixing it programmatically (i.e. with a JS onload). Also: make sure there's some content, like ` ` in the `div`. If nothing works, use the trick that they used 10 years ago when IE6 was born: make an image, stretch it. That's one method that always works.
Abel
Beautiful, ' ' did the trick, a big thanks to you man.I started coding long after IE6, so am not as well read up on these kind of tricks =)
Qwibble
+2  A: 

I think that the easiest way is to use <div class="hr"></div> instead. Styling <hr/> cross-browser is head-breaking, in my experience.

Y. Shoham
A: 

Look here (javscript-technique): http://www.eleqtriq.com/2010/02/stylinghr/

dirk