2010-01-06 3 views
11

안녕하세요, 가능한 한 사이트를 이미지 조명으로 만드는 내 탐구에서 두 가지 톤의 시간을 만들려고합니다.인터넷 탐색기의 시간 스타일링

나는 현대적인 브라우저에서 이것을 달성,하지만과 같은 6으로 효과 7.

내가 해봤

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

내가 사용하고 현재의 코드가를 달성하고자했습니다 성공을 통해 ie6 및 7에서 브라우저를 대상으로하지 않아도됩니다. 이견있는 사람?

(Heres는이 코드를 사용하고, 크로스 브라우저로 찾고 있어요 내 현재 프로젝트 - http://www.qwibbledesigns.co.uk/preview/aurelius/)를 대신 다음과 같은 것을 시도 (그리고 교체

건배

+1

- 사이트의 대부분은 자리 표시 자처럼 보이는,하지만 당신은 "전문가는"철자가 참고 할 수 있습니다. – Sapph

답변

13

매트 <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%; 
} 

<hr> (그리고 ID 또는 클래스를 추가하는 것을 잊지 마세요 모든 div가 이상하게 보이지 않도록하기 위해)

참고 : IE7, IE8 및 호환 브라우저에서 작동합니다. 아마도 10 살짜리 IE6에 대해 더 많은 조정이 필요하거나 이미지 해킹이 필요할 수도 있습니다 (너무 자주).

+0

ie7에서 작동하지만 ie6에서는 margin-bottom을 배치합니다 : 20px; 내가 원하는 것은 모두


의 것입니다. 덧셈은 덧붙여서 두 개의 경계 사이에 공백을 넣습니다. 나는 line-height : 0을 설정하려고 노력했다. font-size : 0을 설정합니다. 국경 사이의 간격을 훨씬 작게 만들었지 만 여전히 시가는 없다. 여기에서 결과를 볼 수 있습니다. www.qwibbledesigns.co.영국/미리보기/aurelius/index.html 의견이 있으십니까? – Qwibble

+3

IE6에서 작동하도록하는 것은 다른 야심심과 많은 좌절과 시간을 요구합니다. 그래서 많은 기업들이 IE6 만 남겨두고 있습니다. 프로그래밍 방식으로 (예 : JS onload로) 수정하는 것이 좋습니다. 또한 : 'div'에'  '과 같은 내용이 있는지 확인하십시오. 아무 것도 작동하지 않으면 IE6이 태어난 10 년 전 사용한 트릭을 사용하십시오. 이미지를 만들고 스트레칭하십시오. 그것은 항상 작동하는 하나의 방법입니다. – Abel

+2

아름답고, ' '이 트릭을했습니다. 당신에게 큰 감사드립니다. IE6 이후에 오래 코딩을 시작 했으므로 이런 종류의 트릭을 잘 읽지는 않습니다. =) – Qwibble

2

가장 쉬운 방법은 <div class="hr"></div>을 대신 사용하는 것입니다. 내 경험상 크로스 브라우저 <hr/> 스타일링은 머리를 부러 뜨립니다.

21

나는이 문제에 대해 좋은 답변을 보지 못했지만 다음과 같은 코드가 HR이 firefox, safari, chrome 및 IE (IE7 이하에서 작동하는지 확실하지 않음)로 일관되게 보이도록 작동해야한다고 생각했습니다. 당신이 클라이언트가 이미 < 시간에 사이트를 반죽 한 경우

hr { 
    color:#bfbfbf; /*used for IE, top color*/ 
    background:#bfbfbf; /*firefox and chrome, top color*/ 
    min-height: 0px; /*required to get IE to render the top pixel color*/ 
    border-left: 0px; 
    border-right: 0px; 
    border-top: 1px solid #bfbfbf; /*Your top color*/ 
    border-bottom: 1px solid #ffffff; /*Your bottom color*/ 
} 
+1

이것은 더 많은 표를 가져야합니다. 실제로는 IE idiocy 주위를 돌아 다니며


의 스타일을 지정하는 방법에 관한 것입니다. 나에게는 높이가있을 때 별난 측면 경계를 다루는 색상 선언이 비밀이었다. – dmnc

4

> 태그 방금 스타일의 시간뿐만 아니라 시간 클래스는 다음 < 시간을 바꿀 수는> IE6와 IE7에서 밖으로 태그.

아벨에 의해 게시 된 CSS를 사용하여 바로 넣어 당신의 js 파일에 다음

hr, .hr { 
    /* 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%; 
} 

:

if ($.browser.msie && $.browser.version.substr(0, 1) <= 7) { 
    $("hr").replaceWith('<div class="hr"></div>'); 
} 

이 분명 jQuery를이 수정이 필요하지만, 나를 위해 잘 작동합니다.

+0

웹 응용 프로그램에서 Javascript DOM을 생성하는 경우 특히 많은 문제가 있습니다. 매트의 순수한 CSS 솔루션은 갈 길이 멀다. – user2867288

0

높이를 2px로 설정하면 문제가 해결됩니다. 주제 끄기

hr { 
    margin: 1em 0 1em 0; 
    border: none; 
    border-top: 1px solid #000; 
    height: 2px; 
    display: block; 
} 
1
hr 
{ 
    /* hr css reset */ 
    color: white; /* if parent element's background is white - old ie versions fix */ 
    border: 0; 
    background: transparent; 
    height: 0; 
    margin: 0; 
    /* hr css reset end */ 
    /* custom styles */ 
    margin: 20px 0; 
    border-top: 1px solid red; 
}