오늘 css 파일을보고 다음 규칙 세트를 발견했습니다.
div.with-some-class {
display:block;
margin:0;
padding:2px 0 0 0;
*padding:1px 0 0 0;
font-size:11px;
font-weight:normal;
*line-height:13px;
color:#3D9AD0;
}
* padding 및 * line-height에서 별표는 무엇을 의미합니까?
감사.
답변
이것은 “밑줄 해킹”과 같은 줄에있는 “별 속성 해킹”입니다. IE가 무시하는 속성 앞에 정크를 포함합니다 (*는 IE 7까지 작동하고 _는 IE 6까지 작동 함).
답변
CSS에서? 아무것도; 오류입니다.
일부 Internet Explorer 버전의 버그로 인해 잘못된 속성 이름을 올바르게 무시하지 않으므로 이러한 브라우저에 특정한 CSS를 제공하는 한 가지 방법입니다.
조건부 주석을 사용하는 것이 더 명확하고 안전합니다.
답변
별표 문자는 CSS에서 유효한 와일드 카드입니다. 이를 단독으로 사용하면 DOM의 모든 요소 노드에 대해 다음 CSS 속성이 사용됩니다. 예:
*{color:#000;}
위의 속성은 모든 DOM 요소에 적용되므로 CSS의 자연스러운 계단식 연결이 해제됩니다. 해당 타겟팅이 고유 한 식별자 참조를 시작하는 DOM 요소를 구체적으로 준비하여 재정의 할 수 있습니다. 예:
#uniqueValue div strong{color:#f00;}
위의 속성은 와일드 카드를 재정의하고 id 속성 값이 “uniqueValue”인 요소 내부의 div에서 발생하는 모든 강력한 요소의 텍스트를 만듭니다.
첫 번째 예와 같이 보편적으로 적용되는 와일드 카드를 사용하는 것은 재설정 스타일 시트를 작성하는 빠르고 더러운 방법이 될 수 있습니다. 와일드 카드 이후의 세분화 된 표현 정의는 매우 부풀어 오른 스타일 시트를 만들 가능성이 높기 때문에 빠르고 더럽습니다. 와일드 카드를 사용하려면 다음과 같이보다 구체적으로 사용하는 것이 좋습니다.
* strong{color:#f00;}
위의 예는 고유 식별자로 지정되지 않은 다른 CSS 속성에 관계없이 모든 강력한 요소의 텍스트를 빨간색으로 만듭니다. 이것은 “! important”선언을 사용하는 것보다 훨씬 더 안전한 것으로 간주됩니다. 그 선언은 의도 된 동작의 자연스러운 기능을 방해하는 것으로 알려져 있고 유지 보수의 악몽입니다.
예제의 별표는 속성 선언, 중괄호 안에 들어가는 코드 내에서 발생하는 것처럼 보이므로 잘못된 위치에 있으며 오류가 발생할 수 있습니다.
답변
이것은 IE7의 해킹입니다.
이것을 쓰면 :
.test {
z-index: 1;
*z-index: 2;
}
W3C 표준 <div class="test"></div>
HTMLElement 를 존중하는 모든 네비게이터 z-index: 1
에서 IE7의 경우이 요소는 z-index: 2
.
이것은 표준이 아닙니다.
W3C 표준으로 동일한 결과를 얻으려면 다음 단계를 따르십시오.
-
Internet Explorer 조건부 주석을 추가합니다 (다른 모든 탐색에 대한 간단한 HTML 주석이므로 표준 방식입니다).
<!-[IE 7 인 경우]> <html lang = “fr”class = “ie7”> <! [endif]->
<!-[if gt IE 7]> <!-> <html lang = “fr”> <!-<! [endif]->
그리고 다음과 같은 이전 규칙을 사용하십시오.
.test {
z-index: 1;
}
.ie7 .test {
z-index: 2;
}