CSS에서! 중요한 의미는 무엇입니까?


409

!importantCSS의 의미는 무엇입니까 ?

CSS 2에서 사용할 수 있습니까? CSS 3?

어디에서 지원됩니까? 모든 최신 브라우저?



17
... 가능할 때마다 피해야 할 것.
Scott

답변:


400

그것은 본질적으로 그것이 말하는 것을 의미합니다. '이것은 중요합니다. 후속 규칙을 무시하고 일반적인 특이성 문제는 규칙을 적용 하십시오 !'

일반적으로 외부 스타일 시트에 정의 된 규칙 head은 문서에 정의 된 스타일에 의해 우선 적용되며 ,이 스타일은 요소 자체 내에서 인라인 스타일에 의해 우선 적용됩니다 (선택 자의 동일성이 가정 됨). !important'속성'(?) 으로 규칙을 정의 하면 '이전'규칙을 재정의하는 '나중'규칙과 관련하여 일반적인 문제가 무시됩니다.

또한 일반적으로 더 구체적인 규칙은 덜 구체적인 규칙보다 우선합니다. 그래서:

a {
    /* css */
}

일반적으로 다음에 의해 통제됩니다.

body div #elementID ul li a {
    /* css */
}

후자의 선택보다 구체적으로는 (더 많은 별 선택이에 (발견된다하고, 일반적으로 문제가되지 않습니다이기 때문에 head또는 외부 스타일 시트)가됩니다 여전히 인라인 스타일 속성 것 (덜 고유의 선택을 무시 항상 항상 더 구체적 이므로 'more-'또는 'less-'특정 선택기를 재정의하십시오 .

그러나 !important덜 구체적인 선택기의 CSS 선언에 추가하면 우선 순위가 우선합니다.

사용 !important은 그 목적을 가지고 있지만 (나는 생각하기 힘들지만) 여우가 닭을 죽이는 것을 막기 위해 핵폭발을 사용하는 것과 비슷합니다. 네, 여우는 죽을 것이지만 닭도 죽을 것입니다. 그리고 이웃.

또한 CSS 디버깅을 악몽으로 만듭니다 (개인적, 경험적, 경험적).


253
또한 많은 프로그래밍 언어에서 접두사와 같이 많은 개발자에게 혼란을줍니다! 의미 하지 않습니다 .
rustyx

19
! important의 목적 중 하나는 GreaseMonkey 스크립트에서 다른 사람의 CSS를 의도적으로 재정의하는 것입니다.
Noumenon

1
공식적으로 W3 는이 를 "규칙" 이라고 부릅니다 .
JD Smith

5
적어도 그것은 냉소적이지 않으며 important!(중요하지 않음) 이라고 말합니다
user3553260

2
당신은 썼습니다 : '일반적으로 외부 스타일 시트에 정의 된 규칙은 문서의 헤드에 정의 된 스타일보다 우선합니다.' 그건 잘못 됐어.
jlguenego

130

중요한 규칙은 CSS를 캐스케이드로 만드는 방법이지만 가장 중요하다고 생각되는 규칙을 항상 적용하는 것입니다. ! important 속성이있는 규칙은 규칙이 CSS 문서에서 나타나는 위치에 관계없이 항상 적용됩니다.

따라서 다음과 같은 경우

.class {
   color:red !important;
}
.outerClass .class {
   color:blue;
}

중요한 규칙은 적용되는 규칙이됩니다 ( 특정 성을 세지 않음 )

내가 믿는 !important모든 브라우저에서 지원 있도록 CSS1 등장이 (IE4 부분 구현 IE6, IE7 + 전체에)

또한 다른 사람들과 함께 일하는 경우 다른 속성을 재정의 할 수 있기 때문에 자주 사용하지 않으려는 것입니다.


1
실제로 버그가있는 IE4 +, 최대 6 개 포함
BoltClock

15
혼란 !은 일부 언어에서는 NOT의 상징 으로 발생 하지만 지금은 더 명확합니다.
Si8

2
특히 사용에 대한 구문을 포함하게되어 기쁩니다 !important. CSS는 특정 언어를 사용하는 방법을 잊기 쉬운 다른 언어와는 다릅니다.
blainarmstrong

3
SI8 @ - 네, 그 때문에 혼란, 나는 항상 "그들"로 정의한다고 생각했습니다 important!, 아니면 IMPORTANT!보다는 !important. 누군가 (이 글을 읽을 수있는) 사람이 왜 구두점 앞에 그것을 정의했는지 알고 있는지 궁금합니다. 분명히 지금 변경하기에는 너무 늦었습니다.
Kevin Fegan

22

!important CSS1의 일부입니다.

지원하는 브라우저 : IE5.5 이상, Firefox 1 이상, Safari 3 이상, Chrome 1 이상

다음과 같은 의미입니다.

다른 중요한 것이 없다면 저를 사용하십시오!

캔트가 더 잘 말해


5
!importantSafari 3 이상에만 국한되지 않습니다. 다른 모든 비 IE 브라우저와 마찬가지로 처음부터 지원했습니다. IE는 버전 4부터이를 이해하지만 버전 7부터는 버그없이 만 지원합니다.
BoltClock

12

원점별로 정렬 할 때 CSS 계단식 정렬에 영향을주는 데 사용됩니다. 그것은 다른 답변에서 여기에 언급 된 것과 같이 특이성과 관련이 없습니다.

우선 순위는 가장 낮은 것부터 가장 높은 것입니다 :

  1. 브라우저 스타일
  2. 사용자 스타일 시트 선언 (! 중요 사항 없음)
  3. 작성자 스타일 시트 선언 (! 중요 사항 없음)
  4. ! 중요한 저자 스타일 시트
  5. ! 중요한 사용자 스타일 시트

그 후 파이에 여전히 손가락이있는 규칙에 대해 특이성이 발생합니다.

참고 문헌 :


@ fabian-barney가 지적했듯이 cascading order developer.mozilla.org/en-US/docs/Web/CSS/Cascade에!important 대한 수정 자입니다 (참조 표 참조).
Doomjunky

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