[CSS] Day1

ITselfhiam
|2023. 10. 10. 15:47

CSS(Cascading Style Sheets)
웹 페이지의 특정 요소 또는 요소 그룹에 적용할 스타일 그룹을 지정하는 규칙을 정의하는 언어

CSS 문법
HTML 문서 <head> 요소 안에 <style> 요소를 사용하여 css 문법을 적용

   

선택자 { 속성명: 속성값; }
    선택자 { 속성명1: 속성값1; 속성명2: 속성값2; ...}
    예시
    p {text-align:center;color:blue;}
    p { text-align: center; color: blue; }
    				-----  -------  ------
				    선택자   	속성    속성값


주석문

/* 작성할 문구 */ 사이에 내용을 입력


CSS를 적용하는 방법


1. 인라인 스타일
HTML 요소 내부에 style 속성을 사용하여 적용하는 방법

    <p style="text-align:center;color:blue;">안녕하세요!</p>


2. 내부 스타일


HTML 문서의 <head> ~ </head> 사이에 <style> ~ </style> 요소를 사용하여 적용하는 방법
 

 <head>
        <style>
            p { text-align: center; color: blue; }
        </style>
    </head>


3. 외부 스타일
웹 사이트 전체의 스타일을 하나의 파일에서 변경할 수 있도록 적용하는 방법

    <head>
        <link rel='stylesheet' href='css 파일 경로'>
    </head>


✓ rel
현재 문서와 링크된 문서 사이의 연관관계를 명시

선택자
1. 전체 선택자
- 스타일을 모든 요소에 적용
- * 기호를 사용해서 표현
- 너무 많은 요소가 있는 HTML 문서에 사용할 경우 클라이언트에 부하를 줄 수 있음

    * { 속성명1: 속성값; 속성명2: 속성값; ...}


✓ 개별적으로 적용한 스타일은 전체 선택자에 적용한 스타일보다 우선!

2. 요소 선택자
- 특정 요소가 쓰인 모든 요소의 스타일을 적용

✓ 상속
부모 요소의 속성값이 자식 요소에게 전달되는 것
자세한것을 해당 사이트를 참고할 것
https://www.w3.org/TR/CSS22/propidx.html

3. id 선택자
- 웹 문서안에 특정 부분 스타일을 적용
- # 기호를 사용하여 id 속성을 가진 요소에 스타일을 적용

HTML

<h2 id='hello'>안녕하세요!</h2>
<h2>반갑습니다!</h2>


CSS

h2 {font-size: 30px; } /* 안녕하세요, 반갑습니다 모두 글자크기 30px 적용 */
h2#hello { font-size: 20px; } /* 안녕하세요만 글자크기 20px 적용 */
#hello { color: pink; } /* 안녕하세요 글자 색상 핑크 적용 */

# 해당 코드 블럭에서 #을 치게 되면 주석 처리가 되어서 회색으로 보이는것뿐입니다.

많은 분들이 작성하시는데 큰 걱정은 없을것 입니다.

4. class 선택자
- 특정 집단의 요소를 한번에 스타일을 적용
- .기호를 사용하여 같은 class 이름을 가진 요소에 스타일을 적용

    HTML

    <h2 class='hello'>안녕하세요!</h2>
    <h2>반갑습니다!</h2>
    <p class='hello'>하이!</p>
    <p>또 만났군요</p>


    CSS

    h2 {font-size: 20px;} /* 안녕하세요, 반갑습니다 글자크기 20px 적용 */
    h2.hello {color: deeppink;} /* 안녕하세요 글자색상 적용 */
    .hello {color: deepskyblue} /* 안녕하세요, 하이 글자색상 적용 */


5. 그룹 선택자
여러개의 요소를 나열하고 ,(콤마)로 구분하여 스타일을 적용

h2, p { text-align: center; }


✓ HTML구조 확인하기

<html>
<head>
    <title>테스트</title>
</head>
<body>
    <h2>HTML의 구조</h2>
    <p>HTML의 <b>구조</b>입니다!</p>
</body>
</html>
                <html>
    <head>                     <body>

    <title>              <h2>              <p>

    테스트              HTML의 구조    HTML의 <b>  입니다!

▶위와 같이 이러한 형태의 구조로 되어있습니다.



6. 자식 선택자
- 부모의 요소 하위의 자식요소의 스타일을 적용

body > p {color: deepskyblue}


7. 자손 선택자
- 조상요소 하위의 모든 요소의 스타일을 적용
- 자손은 자식을 포함

body p {color: deepskyblue}


8. 인접 형제 선택자
- 동일한 부모의 요소를 갖는 자식 요소들의 관계
- 연속된 동생 요소의 스타일을 적용

h2 + p {color: deepskyblue}


9. 일반 형제 선택자
- 형제 관계를 갖는 요소 중에서 요소 다음에 나오는 모든 동생 요소의 스타일을 적용

h2 ~ p {color: deeppink}


10. 속성 선택자
- HTML 요소에서 src, href, style, id, type, class .. 등 속성을 선택자로 지정해서 스타일을 적용
- 패턴이 너무 많음

    HTML

    <img src='apple.png' alt='사과이미지'>
    <img src='banana.png' alt='바나나이미지'>


    CSS

    [src] {border: 3px solid red;}
    [src='apple.png'] {width: 200px; height: 200px;}


11. 가상 선택자
- 클래스를 추가할 필요없이 요소 중에서 순서에 따라 원하는 요소를 선택

HTML

    <ul>
        <li>김사과</li>
        <li>반하나</li>
        <li>오렌지</li>
        <li>이메론</li>
    </ul>


CSS

li:first-child
li 요소 중에서 첫번째 해당하는 요소의 스타일을 적용
ex) ul > li:first-child {color: deepskyblue}

li:nth-child(n)
li 요소 중에서 n번째 요소의 스타일을 적용

li:nth-child(even)
li 요소 중에서 짝수번째 요소의 스타일을 적용

li:nth-child(odd)
li 요소 중에서 홀수번째 요소의 스타일을 적용

li:last-child
li 요소 중에서 마지막에 해당하는 요소의 스타일을 적용


12. 스타일링 링크

a:link -> 하이퍼링크가 연결되었을 때 선택
a:visited -> 특정 하이퍼링크를 방문한적이 있을 때 선택
a:hover -> 특정 요소에 마우스를 올렸을 때 선택
a:active -> 특정 요소에 마우스 버튼을 클릭하고 있을 때 선택


CSS의 컬러

1. 색상 이름으로 표현
    red, yellow, blue, salmon, ...

2. RGB 색상값으로 표현
    rgb(0, 0, 255) -> rgb(0~255, 0~255, 0~255)
                           red    green  blue
    rgba(0, 0, 255, 0.5) -> rgb(0~255, 0~255, 0~255, 0~1의 소수)
                                                     alpha투명도
                                                    
3. 16진수 색상값을 표현
    #0000FF -> 파랑색

    00 00 FF -> #00F
    R  G  B


CSS 텍스트

letter-spacing : 텍스트 내에서 글자 사이의 간격을 설정
ex) 
    안녕하세요. 오늘은 화요일!
    안 녕 하 세 요 . 오 늘 은 화 요 일 !

word-spacing : 텍스트 내에서 단어 사이의 간격을 설정
ex) 
    안녕하세요. 오늘은 화요일!
    안녕하세요.     오늘은      화요일!

text-align : 텍스트 수평 방향 정렬을 설정(left, right, center, justify)

'Study > CSS' 카테고리의 다른 글

[CSS] Day5  (0) 2023.10.17
[CSS] Day4  (0) 2023.10.17
[CSS] Day3  (0) 2023.10.11
[CSS] Day2  (0) 2023.10.11
[CSS] Day1-1  (1) 2023.10.10