2009-12-12 5 views
2

우리는 css * selector를 어떤 조건에서 사용할 수 있습니까? 얼마나 * 선택자가 유용합니까?어떤 조건에서 우리는 css * selector를 사용할 수 있습니까?

는 단지 CSS를 재설정하거나

* { margin: 0; padding: 0; } 

를 해킹하는 것입니다 아니면 다른 유효한 유용한 용도로 사용? * selector를 사용하여 CSS를 최적화하기 위해 * selector를 사용하는 방법이 있습니까?

모든 브라우저에서 지원됩니까? 당신이 어떤 자식 요소를 선택할 때

+0

http://stackoverflow.com/questions/15607873/what-does-the-css-selector-do/ – l2aelba

답변

3

당신이 요소 존재가 있음을 표현하고자하는 곳은 주로 유용하지만, 그것이 무엇인지 신경 쓰지 마라. 예를 들어

#mything * span { color: red; } 

mything는 내측 스팬 아니지만 스팬 mything 안에 직접을 선택한다.

*을 글로벌 검색으로 사용할 때는 신경 쓰지 않아야합니다. 귀하의 페이지에있는 (잠재적으로 수천 개의) 요소를 모두 칠 수 있으므로 확실히 최적화되지 않습니다. 특히 선택자 (예 : .thing * 또는 단지 *)의 마지막 항목 일 때 대부분의 브라우저 선택기 엔진은 .thing과 같은 간단한 선택기보다 훨씬 더 많이 작동합니다. 재설정을 위해 하나의 * 규칙을 없앨 수는 있지만로드를 사용하는 것은 좋은 생각이 아닙니다.

(개인적으로 나는 실제로는 * { margin: 0; padding: 0; } 수정에 반대합니다. 실제로보다 많은 요소에 영향을 미치고, 실제 '문제 마진 요소'는 목록 요소이며 실제로는 양식 컨트롤이 잘못되었습니다. 패딩이 제거되었습니다.)

+0

하지만 재설정 후 양식 요소에 대해 CSS를 정의 할 수 있습니다. –

+0

다음은 유용한 예입니다. http://ghettocooler.net/2005/11/13/image-floats-without-the-text-wrap/ (두 번째 예 : 모든 어린이에게 왼쪽 여백, 두배의 여백을 피하기 위해 '* *'에 왼쪽 여백 없음). – FelipeAls

+0

여기서'* *'는 IE6의'>'에 대한 지원 부족을 해결하기위한 해킹이지만 후행하는'*'는 브라우저가 페이지의 모든 요소를 ​​두 번 선택해야하기 때문에 성능이 좋지 않을 것입니다 , 그것을 좁히기 전에. 나는 다른 브라우저에 대한 해킹에 대해 싫다. 콜 아웃에'padding-left : 115px'를 넣고'h3' 대신에 배경 이미지를 설정하는 것이 더 간단 해 보입니다. 대신 간단히'display : none'을 사용하십시오. 여분의 부유물이나 어린이 셀렉터는 필요하지 않습니다. – bobince

1

그것은 현대의 거의 모든 지원이야 ...

* 유용합니다. 나는 "퍼지"라는 id를 가진 요소 내부의 모든 요소에 약간의 마진을 추가하려는 경우 그래서, 선택은 다음과 같습니다

#fudge > * 
{ 
    margin-left:5px; 
} 
+0

별표 선택기 *는 IE6에서 작동합니다. –

+0

물론'>'자식 선택자는 그렇지 않습니다. – bobince

+3

한숨 ... IE6가 나를 죽입니다. –

관련 문제