코밍이의 하루

[CSS3] 스타일 우선순위와 상속 본문

웹언어 공부/CSS3

[CSS3] 스타일 우선순위와 상속

코밍이 2021. 8. 26. 13:16

1. 개발 환경

구분 내용
사용 언어 HTML5, CSS3
개발환경 Visual Studio Code
참고 도서 [Do it] HTML5 + CSS3 웹 표준의 정석
웹브라우저 Chrome

 

2. 스타일 우선순위

- 우선순위 : 어떤 스타일을 먼저 적용할 것인지 결정하는 규칙

1) 얼마나 중요한가?(Importance)

① 사용자 스타일 시트의 중요 스타일
② 제작자 스타일 시트의 중요 스타일
③ 제작자 스타일 시트의 일반 스타일
④ 기본적인 브라우저 스타일 시트
가장 중요한 것부터 차례로 나열한 것

① 사용자 스타일 시트

- 특별한 조건이 필요한 사용자가 그들에게 맞게 구성해 놓은 스타일 시트

- 시스템을 통해 만들어진 것이기 때문에 제작자가 제어할 수 없음

- ex) 윈도우의 '고대비' 설정

 

② 제작자 스타일 시트의 중요 스타일

- 제작자 스타일 시트:  사이트를 제작하면서 만든 스타일 시트

- 최우선으로 적용해야 할 스타일에는 !important를 붙임

 

③ 제작자 스타일 시트의 일반 스타일

- 사이트를 제작하면서 만든 스타일

- 가장 많이 사용하는 스타일

- 일반 스타일들 안에서  적용 범위에 따라 우선순위가 다름

 

④ 기본적인 브라우저 스타일 시트

- 브라우저의 스타일 시트 : 브라우저들마다 기본적으로 지정하고 있는 스타일

ex) 글자 색을 따로 지정하지 않으면 검은색 표시 → 브라우저에서 기본적으로 글자 색을 검정으로 지정

 

2) 적용 범위가 어디까지 인가?(Specificity)

① 인라인 스타일
② id 스타일
③ 클래스 스타일
④ 태그 스타일
가장 중요한 것부터 차례로 나열한 것

① 인라인 스타일 : 태그 안에 style 속성을 사용해 해당 태그에만 스타일 적용
② id 스타일 : 지정한 부분에만 적용되는 스타일, 한 문서 안에 한 번만 적용할 수 있음
③ 클래스 스타일 : 웹 문서에서 지정한 부분에만 적용되는 스타일, 한 문서 안에 여러 번 적용할 수 있음
④ 태그 스타일: 웹 문서에 사용된 특정 태그에 똑같이 적용되는 스타일

 

3) 소스에서의 순서

- 소스에서 나중에 온 스타일이 먼저 온 스타일을 덮어씀

 

3. 스타일 상속

- 태그들의 포함 관계에 따라 부모 요소의 스타일을 자식 요소로, 위에서 아래로 전달

1) 스타일 상속에서 주의할 것

- 스타일의 모든 속성이 부모 요소에서 자식 요소로 상속되는 것은 아님

- 글자 색은 자식 요소로 상속되지만 부모 요소에 배경 이미지나 배경색이 있었다면 자식 요소에 상속되지 않음

 

4. 소스 코드 및 실행 화면

- priority.html

<!doctype html>
<html lang="ko">
  <head>
      <title>온라인 프로필</title>
      <meta charset="utf-8">
      <style>
        * {
          margin: 20px auto;  /* 내용을 화면 중앙에 배치 */
        }
        body {
          color:blue;  /* 문서 전체의 글자 색 */
        }
        #container { 
          width:600px;  /* 너비 */
          padding:15px;  /* 테두리와 내용 사이의 여백 */
          border:1px dotted gray;  /* 테두리 스타일 */
        }
        h2 {
          color:brown !important;  /* 글자 색. 중요 스타일 */
        }
      </style>
  </head>
  <body>
      <div id="container">      
        <h2 style="color:green;">이지스퍼블리싱의 미션</h2>
        <p>사람에게 구체적으로 도움을 주는 책,<br>
        우리는 열심히 사는 사람들에게 도움이 되고 싶습니다.<br>
        <p>우리는 책을 출간하기 전에 질문할 것입니다.</p>
        <p style="color:red; font-style:italic;">"이 책이 사람들에게 도움이 됩니까?"</p>
      </div>
  </body>
</html>

 

priority.html

- inherit.html

<!doctype html>
<html lang="ko">
	<head>
		<meta charset="utf-8">
		<title>스타일 상속</title>
    <style>
      body {
        color:blue;   /* 글자 색 파랑 */
      }      
      h2{
        font-size:20px;  /* 글자 크기 20픽셀 */
        color:brown;  /* 글자 색 갈색 */
      }
    </style>
	</head>
	<body>
		<h1>CSS</h1>
		<h2>웹 문서의 디자인과 내용을 분리합니다</h2>
		<p>웹 표준에 의한 웹 문서는 디자인과 내용이 분리되어 있습니다.</p>
		<p>내용은 HTML을 이용해 구성하고, 디자인은 CSS를 이용해 꾸미는 것입니다.</p>
	</body>
</html>

inherit.html

'웹언어 공부 > CSS3' 카테고리의 다른 글

[CSS3] 브라우저 접두사  (0) 2021.08.26
[CSS3] 주요 선택자  (0) 2021.08.26
[CSS3] CSS(Cascading Style Sheets) 기초  (0) 2021.08.26