본문 바로가기
HTML+CSS

[2일차] CSS

by Dodledd 2024. 3. 8.

뼈대를 구성하는 HTML

완성된 뼈대에 살을 붙이는 CSS!

CSS는 꾸미기 전용같다. 사실 잠깐 배워본 느낌으로는 HTML 20퍼센트 CSS 80퍼센트로 예쁜 홈페이지가 만들어 지는 것 같다.

 

바로 시작해보자

 

기본 선택자

 

HTML선언하고 <head>안에 <style> </style> 을 만들어 적는게 규칙이다.

또 HTML에서 배웠듯 h3 태그의 아이디를 지정해줘서 전체 적용하는 것이 가능하다.

물론 다른것도 가능하다

모든 태그내에 공톡적으로 쓸 수 있는 속성 : id class
id : 현재 문서내에 "고유"한 값으로 "하나"만을 작성
class : 현재 문서내에 "중복"된 값으로 작성가능, "여러개" 작성 가능
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>기본선택자</title>
    <style>
        /*css 영역(스타일을 기술할 수 있는 영역)*/
        /* *{color: red;}  */
        h3{
            background: yellow;
        }
        p, pre{
            color: tomato;
        }
        li{
            background-color: rgb(236, 142, 142);
        }
        #id1{
            color: aliceblue;
        }
        .cl1{
            color: chartreuse;
        }
        .class2{
            color: rgb(153, 121, 79);
            font-size: 30px;
        }
    </style>
    <!--내부 스타일 방식 : 현재 이 문서에서 적용시키고자하는 스타일 정보들을 <style>태그 내에 기입하는 방식
                          이 html 문서 내에 스타일 정보를 같이 기술하는 방식                        
    -->
</head>

코드에 보면 h3 태그의 백 그라운드를 노란색으로 바꿧다. 그럼 모든 h3 태그에 전체 적용된다.

다른 것도 같은 사용 방식이다.

위 와 같은 방식을 내부 스타일 방식이라고 한다.

 

인라인 스타일 방식 : 스타일을 부여하고자하는 요소내에 style속성을 이용해서 직접적으로 바로 기입하는 방식 우선순위가 가장 높다.

 

그럼 여러가지 선택자들을 자세히 알아보자!

 

1. 모든 (전체) 선택자 :  *

    <h3>1. 모든(전체) 선택자 : *</h3>
    <p>현재 이 문서상에 모든 요소들을 다 선택하고자 할 때 사용</p>
    <pre>
        * {
            스타일속성 : 값;
            스타일속성 : 값;
        }
    </pre>

 

 

2. 태그 선택자 : 태그명

 <h3>2. 태그 선택자 : 태그명</h3>
    <p>현재 이 문서상에 해당 태그를 다 선택하고자 할 때 사용</p>
    <pre>
        태그명 {
            스타일속성 : 값
        }
    </pre>

 

3. 아이디 선택자 : #아이디

    <h3>3. 아이디 선택자 : #아이디</h3>
    <p>
        현재 이 문서상에 특정 html요소 "하나"만을 선택하고자 할 때 사용
        단, 해당 요소에서 id속성을 이용해서 고유한 아이디를 부여해야됨
    </p>
    <pre>
        #아이디명{
            스타일속성:값;
        }
    </pre>

    <ol type="I">
        <li id="id1">아이디선택자</li>
        <li>아이디선택자</li>
        <li>아이디선택자</li>
        <li>아이디선택자</li>
    </ol>

 

 

클래스 선택자 : .클래스명

    <h3>4. 클래스 선택자 : .클래스명</h3>
    <p>
        해당 이 문서내에 내가 원하는 요소 "여러개"를 선택하고자 할 때 사용
    </p>
    <pre>
        .클래스명{
            스타일속성 : 값;
        }
    </pre>

    <ul>
        <li class="cl1">클래스선택자1</li>
        <li class="class2">클래스선택자2</li>
        <li class="cl1 class2">클래스선택자3</li>
        <li>클래스선택자4</li>
        <li class="cl1">클래스선택자5</li>
    </ul>


기타선택자

외부 스타일 방식 : 스타일 정보만을 따로 기술하는 .css 외부문서를 만들고 link 태그를 통해서 연결시켜주는 방식

위 사진과 같이 link를 지정해줘서 href에 css파일의 상대경로를 적어준다.

 

 

1. 속성 선택자

    <h2>1.속성 선택자</h2>
    <p>
        선택하고자 하는 요소에서 작성되어있는 속성을 이용해서 선택하는 방법 <br>
        선택자 뒤에 []를 이용해서 속성과 속성값을 제시하면서 선택
    </p>
    <pre>
        선택자[속성=속성값]
        선택자[속성~=속성값]
        선택자[속성|=속성값]
        선택자[속성^=속성값]
        선택자[속성$=속성값]
        선택자[속성*=속성값] {
            스타일속성 : 값;
        }
    </pre>

    <div class="div-class" name="name1">div1</div>
    <div class="div-class" name="name2">div2</div>
    <div class="div-class" name="name3 name1">div3</div>
    <div class="class-div" name="name3">div4</div>

 

[ ] 대괄호는 사용하지 않는다. 헷갈리지말도록 구분해놓은 것!!

 

 

2. 자식 선택자, 후손 선택자.

 

HTML, CSS에도 자식과 후손은 존재한다.

우리가 언어를 배웠을 때 익혔던 개념과 동일하지만 사람들마다 부르는게 다르다. (자식, 자손 등등)

하지만 뜻은 일맥상통하니 하나만 제대로 외워놓으면 헷갈릴 일이 없다.

 

자식(자손) : 내 바로 밑 한 세대.

후손 : 내 밑 모든 세대들

 

    <h2>2. 자손선택자와 후손선택자</h2>
    <p>
        요소들이 중첩되어 작성 가능 <br>
        자손 : 바로 하위인 요소들 / 후손 : 하위요소 전부
    </p>

    <pre>
        * 자손선택자 : >
        a>b{    
            스타일속성 : 값;
        }
        * 후손선택자 : 공백
        a b{
            스타일속성 : 값;
        }
    </pre>

    <div id="test1">
        <h4>div의 자손이면서 후손입니다.</h4>
        <h4>div의 자손이면서 후손입니다.</h4>
        <ul>div의 자손이면서 후손입니다.
            <li>ul태그의 자손이면서 div의 후손입니다.</li>
            <li>ul태그의 자손이면서 div의 후손입니다.</li>
        </ul>
    </div>

 

3. 동위(같은레벨) 선택자

    <h2>3. 동위(같은레벨) 선택자</h2>
    <p>동위관계(같은레벨)에 있는 뒤에 위치한 특정 요소를 선택할 때 사용</p>
    <pre>
        * a요소 바로뒤에 있는 b요소 "하나만"을 선택
        a+b{
            스타일속성 : 값;
        }

        * a요소 뒤에 "모든" b요소 전부 선택
        a~b{
            스타일속성 : 값;
        }
    </pre>

    <div id="test2">div1</div>
    <div>div2</div>
    <div>div3</div>
    <div>div4</div>
    <ul>ul</ul>
    <div>div5</div>

 

4. 반응 선택자

 <h2>4. 반응선택자</h2>
    <p>사용자의 움직임에 따라 선택되는 선택자</p>
    <pre>
    *해당 요소에 클릭이 되었을 경우 스타일 부여
    선택자:active{
        스타일속성:값
    }

    *해당 요소에 마우스가 올라가는 순간 스타일 부여
    선택자:hover{
        스타일속성:값
    }
    </pre>

    <div id="active-test" class="area">activeTest</div>
    <br><br>
    <div id="hover-test" class="area">hoverTest</div>

위 사각형은 클릭하면 색이 변하고

밑 사각형은 마우스를 올려 놓으면 색이 변한다.

그래서 반응 선택자이다.

 

5. 상태선택자

    <h2>5. 상태선택자</h2>
    <p>요소의 상태에 따라서 선택되는 선택자</p>
    <pre>
        1) 체크된(checked)상태의 요소
        선택자:checked{
            스타일속성:값
        }
    </pre>

    <input type="checkbox" id="apple">
    <label for="apple">사과</label>

    <input type="checkbox" id="banana" >
    <label for="banana">바나나</label>

    <pre>
        2) 초점(focus)이 맞춰진 input 요소 선택
        선택자:focus{
            스타일속성:값
        }
    </pre>
    
    아이디 :
    <input type="text" name="userID">
    <br>
    비밀번호 : 
    <input type="password" name="userPwd">

    <pre>
        3)활성(enabled), 비활성(disabled)되어 있는 요소 선택

        선택자:enabled{
            스타일속성:값
        }
        선택자:disabled{
            스타일속성:값
        }
    </pre>

    <button>클릭가능</button>
    <button disabled>클릭불가</button>


선택자 우선순위

우선순위하면 가장 먼저 생각나는 연산자 우선순위.

그것과 비슷하게 선택자도 우선순위를 가지고 있다.

    <title>선택자 우선순위</title>
    <style>
        h1{
            background-color: pink;
        }

        h1{
            background-color: red;
        }

        #id1{
            background-color: pink;
        }

        .class1{
            background-color: yellowgreen;
            color: antiquewhite;
        }

        div{
            background-color: aqua !important;
            color: red;
        }
    </style>
</head>
<body>
    <h1>선택자 우선순위</h1>
    <p>
        기본적으로 css는 위에서부터 아래로 적용됨 <br>
        동일한 요소를 다양한 선택자로 css를 부여한 경우 우선순위에 따라 적용됨
        태그선택자 -> 클래스선택자 -> 아이디선택자 -> 인라인스타일방식 -> !important 
    </p>

    <div id="id1" class="class1" style="background-color: bisque;">우선순위 테스트</div>
</body>

가장 강한 순서대로

important > 인라인 스타일 방식 > 아이디 선택자 > 클래스 선택자 > 태그 선택자이다.

 

두 개가 겹칠 시 강한놈이 덮어씌워버린다.


글꼴 바꾸는 법

https://dodledd.tistory.com/51

 

HTML과 CSS에서 글꼴을 바꾸는 방법

글꼴 관련 스타일 글꼴을 바꿀 수도 있다. 우리가 원하는 것을 다운받아서 적용시키면 되는데 주의해야할 점은 저작권을 잘 봐야한다. 개인이 사용가능한지, 교육용인지, 상업적 이용이 가능한

dodledd.tistory.com


텍스트 관련 스타일

color : 텍스트의 색상을 지정할 때 사용한다
text-decoration : 텍스트에 줄을 긋거나 줄을 없앨 때 사용한다.
text-align : 텍스트 정렬할 때 사용한다.
line-height : 줄 간격 조절할 때 사용한다.

style 부분

    <style>
        #c{
            color: red;
            color: #5f1b1b;
            color: rgb(0, 0, 0); /*각 값의 최대는 255*/
            color: rgba(0, 0, 0, 0.2); /*각 값의 최대는 255*/
        }
        #td1{text-decoration: underline;}
        #td2{text-decoration: line-through;}
        #td3{text-decoration: overline;}

    </style>

 

color

<pre id="c">
        선택자{
            color: 색상명 | 16진수 | rgb(x,x,X) | rgba(x,x,x,x)
        }
    </pre>

 

 

text-decoration

    <pre>
        선택자{
            text-decoration: none | underline | overline | line-through;
        }
    </pre>
    <ul>
        <li id="td1">텍스트 영역 아래 줄 긋기</li>
        <li id="td2">텍스트 영역 중간에 줄 긋기</li>
        <li id="td3">텍스트 영역 위에 줄 긋기</li>
    </ul>

 

text-align

<pre>
        선택자{
            text-align: left(기본값) | right | center | justify
        }
    </pre>

    <h4>왼쪽정렬(기본값)</h4>
    <p style="text-align: left;">우리나라 경상수지가 9개월 연속 흑자를 기록했다. 여행수지 등 서비스수지는 21개월째 적자 행진을 이어갔지만, 반도체 수출이 큰 폭으로 증가한 결과 상품수지 흑자가 이를 상쇄했다.</p>

    <h4>양쪽정렬</h4>
    <p style="text-align: justify;">우리나라 경상수지가 9개월 연속 흑자를 기록했다. 여행수지 등 서비스수지는 21개월째 적자 행진을 이어갔지만, 반도체 수출이 큰 폭으로 증가한 결과 상품수지 흑자가 이를 상쇄했다.</p>

    <h4>중앙정렬</h4>
    <p style="text-align: center;">우리나라 경상수지가 9개월 연속 흑자를 기록했다. 여행수지 등 서비스수지는 21개월째 적자 행진을 이어갔지만, 반도체 수출이 큰 폭으로 증가한 결과 상품수지 흑자가 이를 상쇄했다.</p>

    <h4>오른쪽정렬</h4>
    <p style="text-align: right;">우리나라 경상수지가 9개월 연속 흑자를 기록했다. 여행수지 등 서비스수지는 21개월째 적자 행진을 이어갔지만, 반도체 수출이 큰 폭으로 증가한 결과 상품수지 흑자가 이를 상쇄했다.</p>

 

line-heigth

<h3>line-height : 줄 간격 조절할 때 사용</h3>
    <pre>
        선택자{
            line-height: normal | px | em | %
        }
    </pre>

    <h4>px 고정 단위 간격</h4>
    <p style="line-height: 30px;">우리나라 경상수지가 9개월 연속 흑자를 기록했다. 여행수지 등 서비스수지는 21개월째 적자 행진을 이어갔지만, 반도체 수출이 큰 폭으로 증가한 결과 상품수지 흑자가 이를 상쇄했다.</p>

 

 

 

 

 

 

 

 

 

CSS 1일차가 끝났다..

배우면 배울수록 꾸미기용이겠구나 라는 생각이 든다 !

'HTML+CSS' 카테고리의 다른 글

HTTP의 상태 코드(에러) 총정리!  (0) 2024.04.03
HTML과 CSS에서 글꼴을 바꾸는 방법  (0) 2024.03.11
[1일차] HTML  (0) 2024.03.07