>  기사  >  웹 프론트엔드  >  내 인라인 스타일이 스타일시트에 의해 재정의되는 이유는 무엇입니까?

내 인라인 스타일이 스타일시트에 의해 재정의되는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-30 03:57:03472검색

  Why Does My Inline Style Get Overridden by a Stylesheet?

CSS 특수성: 스타일 지정 계층 지배

웹 개발 세계에서 충돌하는 스타일을 효과적으로 관리하려면 CSS 우선 순위를 이해하는 것이 중요합니다. 다음 시나리오를 생각해 보십시오. 웹페이지에 인라인 스타일과 참조된 스타일시트가 모두 포함되어 있지만 스타일시트가 인라인 스타일을 재정의하는 것처럼 보입니다.

이러한 우선 순위 문제는 CSS 특정성 개념으로 인해 발생합니다. CSS는 선택기의 길이와 특수성에 따라 각 스타일 선언에 숫자 값을 할당합니다. 값이 높을수록 구체성이 높아지고 다른 스타일을 재정의할 가능성이 높아집니다.

주어진 예에서 제공된 CSS는 다음과 같습니다.

<style>
  td {
    padding-left:10px;
  } 
</style>

.rightColumn * {margin: 0; padding: 0;}

td에 대한 인라인 스타일 선언의 구체성은 0001입니다(ID 속성 0개, 클래스 또는 속성 선택기 0개, 요소 이름 1개). .rightColumn *에 대한 스타일시트 선언의 구체성은 0010입니다(ID 속성 0개, 클래스 선택기 1개, 속성 또는 의사 클래스 선택기 0개, 요소 이름 0개).

CSS 특이성 규칙에 따르면 후자 선언 더 높은 특이도를 가지므로 소스 순서에서 더 빠른 경우에도 우선 적용됩니다.

이 문제를 극복하려면 두 가지 옵션이 있습니다.

  1. !important를 사용하세요. : 스타일시트 규칙보다 더 중요하게 만들려면 td 스타일 선언에 !important를 추가하세요. 그러나 충돌하는 규칙이 많은 경우 !important를 사용하면 문제가 될 수 있습니다.
  2. 인라인 스타일의 구체성 높이기: ID나 클래스를 추가하여 td 선택기의 구체성을 높이세요. . 이렇게 하면 인라인 스타일에 스타일시트 규칙보다 더 높은 특수성이 부여되어 이를 재정의할 수 있습니다.

예:

<style>
  .important-td {
    padding-left:10px;
  } 
</style>

또는

<style>
  #specific-td {
    padding-left:10px;
  } 
</style>

CSS 특수성을 이해하는 것은 효과적인 웹 디자인과 요소에 적용된 스타일이 의도한 대로인지 확인하는 데 필수적입니다. 개발자는 특정성 개념을 활용하여 스타일의 우선순위를 지정하고 웹 페이지에 원하는 시각적 모양을 만들 수 있습니다.

위 내용은 내 인라인 스타일이 스타일시트에 의해 재정의되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.