목표를 달성하는 데는 여러 가지 방법이 있습니다. 가장 간단한 방법은 중첩 된 ul
요소에 정적 클래스를 설정하는 것입니다. 이것은 부모의 호버 이벤트에 의해 트리거 될 때만 볼 수 있기 때문입니다. 예 : http://jsfiddle.net/deloretta/gspnK/ (참고 : 상위 요소 내부의 텍스트가 "점프"하는 것을 방지하려면 요소에 1 픽셀의 패딩을 추가하고 마우스 오버시 제거하거나 텍스트를 중앙 집중식으로 정렬하거나 원하는 방법으로 시도해 볼 수 있습니다.)
둘째
, 더 비효율적 인 방법 (하지만 난 늘 여기에 이동 사용의있다)과 같이 그들에게이 요소가 아이 요소를 가지고있는 경우에 당신이 알 수 있으며, 클래스를 적용 http://jsfiddle.net/deloretta/XVrr6/
이상적으로, IE7 + 스타일은 자신의 스타일 시트 (IE7 +가 !important
구문을 지원함)에 있으며 조건부 주석을 사용하여 액세스 할 수 있습니다. 기본적으로 border
속성을 제거하고 IE 특정 스타일 시트에 배치하십시오. IE는 -moz-
과 -webkit-
선언을 무시하고 border
속성을 올바르게 렌더링하며, moz/webkit은 조건부 주석을 무시하고 상자 그림자를 렌더링합니다. Lovely jubbly.
희망이 도움이됩니다.
편집 - 최초의 코멘트에 응답 :
은 내가 귀하의 의견을 이해 생각한다. 그렇지 않은 경우 알려 주시면 더 도움을 드리겠습니다.
조건부 주석으로이 작업을하려면 두 가지 스타일을 구분해야합니다. 하나는 IE 용이고 다른 하나는 다른 모든 브라우저 용입니다. 이 같은이 작업을 수행 할 수 있습니다
<link rel="stylesheet" type="text/css" href="/style.css">
<!--[if IE]>
<link rel="stylesheet" type="text/css" href="/style_ie.css">
<![endif]-->
그런 다음이 정보를 포함하는 기존 스타일 시트를 수정해야합니다 :
이
#nav #link1.selected > a {
padding-bottom: 10px;
margin-bottom: 0;
-webkit-border-radius: 5px 5px 0 0;
-moz-border-radius: 5px 5px 0 0;
border-radius: 5px 5px 0 0;
/*the border declaration used to be here
but we moved to another stylesheet
specifically for IE*/
-webkit-box-shadow:0px 1px 1px #f0f;
-moz-box-shadow:0px 1px 1px #f0f;
}
.static_class{
/*border used to be here*/
-webkit-box-shadow:0px 1px 1px #f0f;
-moz-box-shadow:0px 1px 1px #f0f;
}
다음, styles_ie.css
라는 별도의 스타일 시트를 작성 -이 경계 정보를 수용 할 것을 우리 다른 스타일 시트에서 제거되었습니다. 그래서 같이 : 그래서
#nav #link1.selected > a {
border-bottom:1px solid #f0f;
border-left:1px solid #f0f;
border-right:1px solid #f0f;
}
.static_class{
border-bottom:1px solid #f0f;
border-left:1px solid #f0f;
border-right:1px solid #f0f;
}
... 어떻게됩니까?
Internet Explorer는 조건부 주석을 지원하는 유일한 브라우저입니다.따라서 Firefox, Safari 또는 Chrome이 페이지에 있으면 주석을 무시하므로 주석에 링크 된 스타일 시트가 렌더링되지 않습니다.
Internet Explorer가 페이지에 도착하면 styles.css
에서 이해하는 모든 것을 렌더링합니다 (이해할 수 없기 때문에 border-radius
및 box-shadow
속성을 무시함). 그런 다음 조건부 주석 (이해할 수 있음)으로 이동 한 다음 스타일 시트 styles_ie.css
을로드 한 다음 추가 스타일을 요소에 적용합니다. 쉬운 - peasy, 레몬 - 스퀴지 :]
출처
2011-04-26 05:49:30
dan
고마워! 어쨌든 드롭 다운 메뉴의 맨 아래에있는 윗쪽/짙은 1px 행을 제거하도록 만들 수 있습니까? 첫 번째 방법을 사용하고 있습니다. – Cofey
@ 코 피 - 어떤 브라우저를 사용하고 있습니까? 스크린 샷을 제공 할 수 있습니까? 자세한 내용은 내 원본 답변을 참조하십시오. – dan
예 : 여기 있습니다 : https://img.skitch.com/20110427-bs3qetw8wf65axsdnuu2y51c9t.jpg (두 픽셀이 하나가 아니라 아래쪽에 어떻게 표시되는지 확인합니다). 최신 버전의 Chrome을 사용하고 있으며 Firefox 3.6에서도이 작업을 수행하고 있습니다. – Cofey