CSS - DAY 1

NewTypeAsuka·2023년 4월 3일
0

WebFront@

목록 보기
4/7

1. CSS(Cascading Style Sheets)

CSS

  • 마크업 언어가 실제로 화면에 표시되는 방법을 기술하는 언어
    (모양, 색상, 크기 등)
  • W3C(웹 표준 지정 기관)에서 CSS를 표준으로 지정

웹 페이지 구성

  • 문서 내용 작성과 꾸미는 부분을 분리하여 내용을 수정해도 디자인을 바꿀 필요가 없음
    디자인을 수정해도 글 내용을 바꿀 필요가 없다.
  • 다양한 기기에도 디자인만 따로 적용하여 구동시킬 수 있다.

style과 stylesheet

  • style:
    정해진 속성을 입력하여 웹 페이지를 꾸미는 것
  • stylesheet:
    웹페이지에서 반복적으로 쓰는 style을 모아놓은 것

스타일 시트 종류

  • 1) 내부 스타일 시트:
    <style> 태그 내부에 스타일 정보를 저장하는 방법
<style>
	#test{
        height:100px;
        background-color: black;
    	color: white;
  	}
</style>
  • 2) 외부 스타일 시트:
    <link> 태그를 이용하여 css파일을 읽어와서 스타일 적용
<link rel="stylesheet" href="css/02_CSS선택자2.css">
  • 3) 인라인 스타일 시트(inline-style):
    태그 내부에 스타일 정보를 지정하는 방법
<div class="cls1" id="test1" style="background-color: pink;">
테스트</div>
  • 인라인 스타일 시트보다 내부 스타일 시트,
    내부 스타일 시트보다 외부 스타일 시트가 추천된다.

CSS의 단위


2. 선택자(selector)

선택자

  • 현재 HTML 문서 내에서 특정 요소를 선택하는 문자 또는 문자열


전체 선택자

  • <html>에 있는 모든 태그에 적용되는 선택자
  • 기호 * 사용
<style>
  *{margin: 0;}
</style>

태그 선택자(타입 선택자)

  • 특정 태그에 적용되는 선택자
  • 여러 개 태그 선택 시에는 ','(쉼표)로 구별하여 작성
div{border: 3px solid red;}
strong{background-color: pink;}
span{
	color: green;
	font-weight: bold;
	font-size: 20;
}
h1, p {text-align: center;}

id 선택자

  • 태그 속성 id를 설정하고 id 값에 적용하는 선택자
  • 기호 # 사용
    • id 속성 값은 페이지 내에서 중복된 값이 있어서는 안된다.
    • id 속성 값은 카멜표기법으로 작성한다.
#li1{background-color: red;}
#li2{background-color: orange;}
#li3{background-color: yellow;}
#li4{background-color: green;}
#li5{background-color: blue;}
/* 콤마(,)를 이용하여 여러 선택자를 동시에 작성 가능 */
#li1, #li2, #li4, #li5{
	color: white;    
}

클래스 선택자

  • HTML 문서 내에서 같은 클래스 속성 값을 가지는 요소를 모두 선택하는 선택자
  • 기호 . 사용
    • 클래스 속성 값을 이용해서 관련있는 요소끼리 그룹 지정 가능하다.
    • 클래스 속성 값은 하이픈표기법(-)으로 작성한다.
.test-1{color: red}
.test-2{color: white; background-color: black;}
/* 클래스 선택자를 이용해서 미리 CSS 코드 작성 */
/* 추후 HTML 작성 시 해당 스타일이 필요한 경우 클래스 속성으로 추가 */
.bg-orange{background-color: orange;}
.bg-blue{background-color: blue;}
.color-white{color: white;}

기본 속성 선택자

  • 태그에 작성된 특정 속성을 선택하는 선택자
    • 1) 선택자는 생략할 수 있다
    • 2) "속성값"에서 양쪽 쌍따옴표("")는 홑따옴표('')로 변경하거나 생략도 가능
/* div 태그 중 name 속성 값이 name-1인 요소의 배경색 지정 */
div[name="name-1"]{background-color: aquamarine;}
/* p 태그 중 name 속성 값이 name-1인 요소의 배경색 지정 */
p[name='name-1']{background-color: coral;}
/* name 속성 값이 name-2인 요소의 배경색 지정 */
[name=name-2]{background-color: cadetblue;}
/* class 속성 값이 name-test인 요소 중 name 속성 값이 name-2인 요소의 글자색 지정 */
.name-test[name=name-2]{color: red;}

문자열 속성 선택자

  • 특정 문자열을 확인하여 스타일을 적용하는 선택자

후손 선택자

  • 지정된 요소의 모든 하위 요소를 선택하는 선택자
  • 띄어쓰기 사용

자식 선택자

  • 지정된 요소 바로 하위에 존재하는 요소를 모두 선택하는 선택자
  • 기호 > 사용

동위 선택자

  • 동위 관계(형제 관계)에서 뒤에 위치한 태그를 선택할 때 사용하는 선택자

반응 선택자(가상 클래스)

  • 사용자의 움직임에 반응하여 스타일이 달라지는 선택자
    • 요소를 클릭하고 있는 경우 (:active)
    • 요소에 마우스가 올라가 있는 경우 (:hover)
    • 요소에 초점이 맞춰졌을 때 (:focus)

상태 선택자

  • 입력 양식(input, input 관련 태그)의 상태에 따라 선택되는 선택자
    • :checked -> checkbox, radio가 체크되었을 때 선택
    • :enabled / :disabled -> 요소가 사용 가능한/불가능한 상태일 때 선택

일반 구조 선택자

  • 특정한 위치에 있는 태그를 선택하는 선택자
    (위치로만 구분)

형태 구조 선택자

  • 특정한 위치에 있는 태그 선택하는 선택자
    (태그 별로 구분)

문자 선택자

  • 태그 내부에서 특정 조건의 문자를 선택하는 선택자

부정 선택자

  • 지금까지의 선택자에 대해 반대로 적용하는 선택자
  • :not 사용

기타 선택자 기능

  • only-child:
    특정 요소의 자식이 하나밖에 없을 때 선택
  • only-of-type:
    특정 요소의 자식 중 지정된 형태와 같은 자식 요소가 하나만 있을 때 선택
  • :empty:
    자식 요소(노드) 없을 때 선택
  • 클래스가 여러 개 작성된 요소만 특정해서 선택하기:
    클래스 선택자를 띄어쓰기 없이 연달아 작성

3. CSS 우선순위

CSS 적용 우선순위

  • 기본적으로 나중에 작성된 스타일을 우선 적용
    • 위보다 아래에 작성된 스크립트 우선
    • 왼쪽보다 오른쪽에 작성된 스크립트 우선
  • 적용 방법에 따른 순위
    • 5) 태그 스타일
    • 4) 클래스 스타일
    • 3) id 스타일
    • 2) 인라인 스타일
    • 1) !important
<head>
    <style>
        /* 3순위: id 선택자 */
        #test1{
            height:100px; /* 5순위와 겹침 */
            background-color: black; /* 4순위와 겹침 */
            color: white;
        }
        /* 4순위: 클래스 선택자 */
        .cls1{background-color: green;}
        /* 5순위: 태그 선택자 */
        div{
            width: 200px;
            height: 200px;
            background-color: red !important; 
                                /* 1순위: !important */
        }
    </style>
</head>
<body>
    <h1>CSS 선택자의 우선순위</h1>
                                <!-- 2순위: inline-style -->
    <div class="cls1" id="test1" style="background-color: pink;">
        테스트</div>
</body>

0개의 댓글