1. 상속

부모 엘리먼트의 속성을 자식 엘리먼트가 물려받는 것을 의미한다. 

CSS에서 생산성을 높이기 위한 중요한 기능

 

[ 예제 코드 ]

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
/* 	li{color: red;} 
 	h1{color: red;} 
    	li태그와 h1 태그에 각각 컬러를 줄 수도 있지만, 
    	html 전체에 한 번에 컬러를 지정하여 상속시킬 수 있다. */
	html{color: red; }
	#select{color: black;}
    
/* 	모든 속성이 상속을 지원하는 것은 아니다. 상속을 하면 오히려 비효율적인 속성들이 있기 때문이다. */
	body{border: 1px solid blue;}
</style>
</head>
<body>
	<div id = "container">
		<h1>수업준비</h1>
		<ul>
			<li id="select">java</li>
			<li>css</li>
			<li>js</li>
		</ul>
		
		<h1>수업참가자</h1>
		<ul>
			<li>홍길동</li>
			<li>한이람</li>
			<li>한이은</li>
		</ul>
	</div>
</body>
</html>

 

[출력 결과]

▶상속되지 않는 요소들을 확인할 수 있다.

https://w3.org/TR/CSS21/propidx.html

 

Full property table

 

www.w3.org

 

 

 

2. cascading

HTML 속성은 하나 이상의 스타일에 영향을 받을 수 있기 때문에, 어떤 스타일을 적용 받을지에 대한 우선순위가 결정되어야 한다. 이를 캐스캐이딩이라고 한다. CSS의 정식명칭이 Cascading Style Sheets인 만큼 캐스캐이딩은 중요!다음 세 가지에 따라 우선순위가 결정된다.

 

  • 중요도에 따른 우선순위
    - <head>의 <style>
    - <head>의 <style> 내의 @import
    - <link>로 연결된 CSS 파일
    - <link>로 연결된 CSS 파일 내의 @import
    - 브라우저의 기본 CSS

  • 명시도에 따른 우선순위
    - !important
    - inline 스타일
    - 아이디 selector
    - 클래스 / 가상 선택자
    - 태그 선택자
    - 상속된 스타일
    *** !important는 가장 높은 우선순위를 갖지만, 남용하는 것은 좋지 않다.
    *** inline은 높은 우선순위를 갖지만, <style>이나 외부 CSS 파일로 빼는 것이 좋다.

  • 코드순서
    - 늦게 선언된 스타일 우선 적용

[예제 코드1]

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
	li{color: red;}
	#idsel{color: green;}
</style>
</head>
<body>
	<!-- 
		'구체적인 것'을 기준으로 우선순위가 정해진다.
	 -->
	<h1>순서</h1>
	<ol>
		<li>style attribute</li>
		<li id="idsel">id selector</li>
		<li>class selector</li>
		<li>tag selector</li>
		
	</ol>
</body>
</html>

 

[출력 결과1]

 

[예제 코드2 - !impotant 적용]

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
	/*
		!important : 우선순위가 가장 먼저 적용된다. 쉬운 방법이긴 하나 좋은 방법은 아니다.
	*/
	li{color: red !important;}
	#idsel{color: green;}
</style>
</head>
<body>
	<h1>순서</h1>
	<ol>
		<li>style attribute</li>
		<li id="idsel">id selector</li>
		<li>class selector</li>
		<li>tag selector</li>
		
	</ol>
</body>
</html>

 

[출력 결과2]

 

728x90

'이론 > 자바 풀스택 국비수업' 카테고리의 다른 글

220506 CSS 6  (0) 2022.06.17
220506 CSS 5  (0) 2022.06.17
220504~06 CSS 3  (0) 2022.06.17
220504 CSS 2  (0) 2022.06.14
220503~04 CSS 1  (0) 2022.06.13

+ Recent posts