한 클래스를 제외한 모든 요소에 대해 CSS 규칙을 만드는 방법은 무엇입니까?


95

내 프로젝트를위한 CSS 스타일 시트를 만들었습니다. "dojoxGrid"클래스에 속하는 테이블 요소를 제외한 모든 테이블 요소에 적용되는 CSS 규칙을 작성할 수있는 방법이 있습니까? 다음과 같은 것 :

.not(dojoxGrid) table{
    width:100%;
    border-top:1px solid #dddddd;
    border-left:1px solid #dddddd;
    border-right:1px solid #dddddd;
    margin:1em auto;
    border-collapse:collapse;
}

브라우저 간 작업에 이것이 필요합니까? 브라우저는보다 유연한 CSS 선택기에 대해 다양한 지원을 제공합니다. 절대적으로 필요하고 크로스 브라우저가 필요한 경우 스크립트에서 수행 할 수있는 작업 일 수 있습니다.
kibibu

예, 주요 브라우저에서 작동하려면 필요합니다. 스크립팅이 아닌 다른 방법으로 달성 할 수 있습니까? cheers
Nick

Cori의 접근 방식은 브라우저에서 ie4로 돌아갈 때까지 작동합니다.
kibibu

답변:


183

부정 의사 클래스는 당신이 찾고있는 것 같다.

table:not(.dojoxGrid) {color:red;}

그러나 ≤ IE8에서는 지원되지 않습니다 .


2
이것은 IE9에서 사용할 수있는 좋은 css3 선택기입니다.
cori

4
내 의견이 질문에 직접 적용되지는 않지만 :notjquery 선택기로 사용할 수 있다는 점은 주목할 가치가 있습니다. 즉 $("[data-name='bob']:not(a)"), 좋은 것입니다.
gingerbreadboy

3
이것은 원하는 효과에 대한 대답이기 때문에 받아 들여진 대답이어야합니다. 현재 받아 들여지는 답변은 원하는 효과를 얻는 다른 방법이지만 실제로 질문에 대한 답변은 아닙니다. 이 질문을 찾은 사람들은 정확히 질문에 대한 답을 찾고있을 가능성이 매우 높으며 대부분의 경우 대체 방법이 적용되지 않습니다.
Pedro Moreira

≤IE8에서는 테이블을 가져올 수 없도록 완전히 무시 color:red됩니다. 이것은 일부에게는 좋을지 모르지만 나를 위해 나는 그것이 그것을 읽고 table {color:red;}그냥 무시하기를 바랐습니다 :not().
DutGRIFF

7
@FranciscoCorralesMorales :not(.classOne):not(.classTwo)cf stackoverflow.com/a/5684168/248058
Knu

12

모든 테이블에 대해 CSS 규칙을 설정 한 다음 class = "dojoxGrid"가 작동하는 테이블에 대해 후속 규칙을 설정하지 않습니까? 아니면 내가 뭔가를 놓치고 있습니까?


3
예, 그것은 절대적으로 작동하지만 모든 속성을 값으로 설정합니다. "설정되지 않은"상태로 두려면 아니요. 아마도 Nick은 dojoxGrid의 값이 다른 곳에 설정되어 있기 때문에 방해하지 않으려 고합니다.
kibibu

1
나는 그럴 것이라고 생각한다. 그러나 모든 테이블에 대한 속성을 설정하고 있으며 dojoxGrid에 필요한 기본값으로 다시 덮어 쓸 수 있습니다. 그러나 이러한 기본값이 dojo 라이브러리에서 생성되기 때문에 어떤 것인지 잘 모르겠습니다. 따라서 나는 그것을 달성 할 다른 방법을 찾고있었습니다.
Nick

4

가장 안전한 방법은 해당 테이블에 클래스를 만들어 사용하는 것입니다. 현재 모든 주요 브라우저에서 이와 같은 기능이 작동 할 가능성은 거의 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.