1. CSS 란?

👩🏻‍💻  CSS (style)각 요소들이 어떻게 보이는가를 정의하는데 사용되는 스타일 시트 언어로 홈페이지의 스타일 즉 디자인 요소를 담당

 

1) 스타일

 

a.  스타일 형식

[기본구조]
선택자(Selector) { 속성(property) : 값(value); }
(* 스타일은 기본적으로는 마지막에 작성된 순서대로 표현되어짐!)

 

  ✏️  맨 앞의 선택자는 스타일을 어느 태그에 적용할 것인지 알려 주는 것

  ✏️  속성과 값이 하나의 쌍으로 이루어진 것을 스타일 규칙이라 하며, 세미콜론(;)으로 구분해 스타일 규칙을 여러 개 지정할 수 있다.

 

b. 스타일의 주석 표기

<style>
    /* style 안에 작성하는 주석방법! */
</style>

 

  ✏️  /* */ 안에 한 줄 또는 여러 줄 들어갈 수 있다.


💡 CSS 소스 경량화 

    -  CSS 소스는 네트워크를 이용해 파일로 내려받으므로 되도록 파일 크기가 작은 것이 좋다.

    -  즉, 줄 바꿈, 공백등을 제거하고 꼭 필요한 정보만 남겨 파일을 작게 만드는 것을 'CSS 소스 경량화(minify)' 라고 한다. 

 

 


2) 스타일 시트

 

📁  스타일 규칙을 한눈에 확인하고 필요할 때마다 수정하기도 쉽도록 한군데 묶어 놓은 것을 '스타일 시트'라고 한다.

 

스타일 시트 갈래

 

a.  브라우저 기본 스타일

  ·  CSS를 사용하지 않은 웹 문서라 하더라도 웹 브라우저에 표시할 때는 기본 스타일을 사용

 

b. 사용자 스타일

 

💡  인라인 스타일(Inline style)

    -  HTML 요소 내부에 style 속성을 사용하여 CSS 스타일을 적용하는 방법

</h2 style="color:green">

 

 

💡  내부 스타일 시트(Internal style sheet)

    - <style>태그를 사용하여 CSS 스타일을 적용하는 방법

<head>
  <style>
       body { background-color: lightyellow; }
  </style>
</head>

 


💡  외부 스타일 시트(External style sheet)
    -  외부에 작성된 .CSS문서 즉 스타일 시트 파일을 연결하여 적용하는 방법

<head>
    <link rel="stylesheet" href="외부 스타일 시트 파일 경로">
</head>

 

    ⚡️  외부 스타일 시트 작성
         1. html 파일이 있는 디렉토리에 css 라는 이름의 디렉토리를 생성
         2. css 디렉토리에 main.css 파일 생성
         3. html 파일의 <style> 태그 안의 부분을 복사해서 main.css에 붙여넣기
               ▶️  <style> 태그는 포함하지 않음
         4. html 파일의 <style> 태그 삭제
         5. <link> 태그로 css 파일을 연결

     ⚡️  외부 스타일 시트의 단점
           - 캐쉬 때문에 바로 적용이 안 되는 경우가 있음


 

<!-- main.css 파일 -->
.de {
    color: #09F;
}
<head>
    <meta charset="UTF-8">
    <title>CSS 지정 방식</title>
        <link rel="stylesheet" href="./css/main.css" />
</head>

<body>
    <p class="de">
        디지털 디자인 이란 ?<br>
        우선 '디지털(Digital)' 그리고 '디지털 스토리텔링(Digital Storytelling)'이란 말에 대해 생각해보자.
    </p>

</body>

출력 결과

 


2.  CSS 기본 선택자 

1)  클래스 선택자  class selector

.클래스명 { 스타일 규칙 }

 

👩🏻‍💻  클래스 이름을 사용해서 다른 선택자와 구별하는데, 클래스 이름 앞에 마침표(.)를 붙여야 한다. 

👩🏻‍💻  클래스 스타일을 적용할 때는 태그 안에 class="클래스명" 처럼 class 속성을 사용해서 지정

👩🏻‍💻  요소 하나에 클래스 스타일을 2개 이상 적용할 수 있다.  

       ▶️ 이 때 공백으로 구분해서 스타일 이름을 적으면 된다.

<head>
    <meta charset="UTF-8">
    <title>CSS 지정 방식</title>
    <style>
        .de {
            color: #09F;
        }
    </style>
</head>

<body>
    <p class="de">
        디지털 디자인 이란 ?<br>
        우선 '디지털(Digital)' 그리고 '디지털 스토리텔링(Digital Storytelling)'이란 말에 대해 생각해보자.
    </p>
</body>

출력 결과


 

2) 전체 선택자  universal selector

* { 속성: 값... }


 👩🏻‍💻  html내에 등장하는 모든 형태를 선택 (초기화, 기본 설정값) 가급적 사용안하는 것이 좋음.

         ➡️ reset.css 치면 나오는 글 참고해서 작성하는 것이 좋다.

<style>
    * {
         margin: 0; /* 바깥여백 */
         padding: 0; /* 안쪽여백 */
      }
</style>
</head>
<body>
    <h4>Artwork Concept Drawing</h4>
    <h1>아트웍 컨셉 드로잉</h1>
    <p>
        편집 포트폴리오에 포함될 수 있는 북커버 및 동화책 삽화 제작, 웹 포트폴리오에 포함될 수 있는 아트웍 실습,
        3D 캐릭터 디자인이나 모션 그래픽에 사용할 수 있는 아트웍 표현에 대하여 학습합니다.
    </p>
</body>

 

출력 결과

 


3)  타입 선택자 type selector 

태그명 { 스타일 규칙 }


👩🏻‍💻  특정 태그를 사용한 모든 요소에 스타일을 적용하는 선택자로, html 화면 내에서 하나의 이름으로 한 번만 사용권장
       ➡️  주로 큰 단락, 부모에서 사용

👩🏻‍💻  여러 태그들을 한 번에 선택해 스타일 속성을 적용할 때 쉼표 사용

 

  💡  태그(tag)와 요소(element)

      -  태그는 말 그대로 태그 자체를 가리키는 반면, 요소는 태그를 적용한 것을 가리킴

      -  즉 요소는 태그 안에 적힌 문자들을 지칭

<style>
        * {
            margin: 0; /* 바깥여백 */
            padding: 0; /* 안쪽여백 */
        }

        body {
            background: #000000; /* 배경색 지정. #000 -> 검정색 */
            color: white; /* 글자색 */
        }
</style>
</head>
<body>
    <h4>Artwork Concept Drawing</h4>
    <h1>아트웍 컨셉 드로잉</h1>
    <p>
        편집 포트폴리오에 포함될 수 있는 북커버 및 동화책 삽화 제작, 웹 포트폴리오에 포함될 수 있는 아트웍 실습,
        3D 캐릭터 디자인이나 모션 그래픽에 사용할 수 있는 아트웍 표현에 대하여 학습합니다.
    </p>
</body>

출력 결과


 

태그 선택자와 클래스 선택자를 함께 사용하면 더 정확하게 태그를 선택할 수 있음 
   ex. 태그명.클래스명
<head>
    <style>
        li.select {
            color: red;
        }
    </style>
</head>
<body>
    <h1 class="select">Lorem ipsum</h1>
    <ul>
        <li class="select">Lorem ipsum</li>
        <li>Lorem ipsum</li>
        <li>Lorem ipsum</li>
        <li>Lorem ipsum</li>
    </ul>
</body>

 

출력 결과

 

 


4) id 선택자  id selector

#아이디명 { 스타일 규칙 }

 

👩🏻‍💻  id 선택자도 클래스 선택자와 마찬가지로 특정 부분에 스타일을 적용할 때 사용
👩🏻‍💻  마침표(.) 대신 # 기호를 사용한다는 점만 제외하면 클래스 선택자와 사용법은 동일
👩🏻‍💻  주로 큰 단락, 부모에서 사용. 자바 스크립트에서 사용.

<head>
    <meta charset="UTF-8">
    <title>스타일시트</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        #title1 {color: #666666;}
        #title2 {color: blue;}
        #title3 {color: orange;}
        #title4 {color: red;}
        #title5 {color: gray;}
        #title6 {color: green;}
    </style>
</head>
<body>
    <h1 id="title1">웹디자인</h1>
    <h2 id="title2">스마트폰 웹디자인</h2>
    <h3 id="title3">웹기획</h3>
    <h4 id="title4">웹프로그래밍</h4>
    <h5 id="title5">웹퍼블리쉬</h5>
    <h6 id="title6" style="color:red;">제이쿼리</h6>
</body>

출력 결과

 


id는 고유값이어야 하지만, 스타일시트에서는 id 속성 중복이 문제가 되지 않음
하지만 자바스크립트는 id 속성이 중복될 경우에 문제가 발생
    예) getElementById(), getElementsByClassName()

id 속성은 중복되지 않게 사용해야 함
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #rint { color: red;}
    </style>
</head>
<body>
    <h1 id="rint">CSS3 Selector Basic</h1>
    <h2 id="rint">CSS3 Selector Basic</h2>
    <h3 id="rint">CSS3 Selector Basic</h3>
</body>

출력 결과

 


5) 그룹 선택자

선택자1, 선택자2 { 스타일 규칙 }

 

👩🏻‍💻  여러 선택자에서 같은 스타일 규칙을 사용하는 경우 쉼표(,)로 구분해 여러 선택자 나열 후 스타일 규칙을 한 번만 정의

 


 

3. 캐스케이딩 스타일 시트

 

🚀  캐스케이딩 cascading 은 CSS 의 'C'에 해당하며, 스타일 시트에서 우선순위가 위에서 아래로 적용된다는 의미로 사용

🚀  CSS에서는 웹 요소에 둘 이상의 스타일을 적용할 때 우선순위에 따라 적용할 스타일을 결정

 

스타일 충돌하지 않게 하는 방법 : 스타일 우선순위 적용 / 스타일 상속

 

 

1) 스타일 우선순위

 

👾  어떤 스타일을 먼저 적용할 것인지 결정하는 규칙

👾  웹 브라우저 내용을 표시할 때 사용자 스타일, 제작자 스타일, 웹 브라우저 기본 스타일 순으로 우선 적용

👾  중요도가 같은 스타일인 경우 필요한 요소에만 적용할 스타일 일수록 우선순위가 높아진다.

a. ! important : 스타일에 강제 스타일 적용 시 사용 ex) background-color: yellow !important;
b. 인라인 스타일  ex) <h2 style="color:green">
c. id 스타일  ex) #id { color: #000; }
d. 클래스 스타일  ex) .class { color:#000; }
e. 타입 스타일  ex) h1 { color:#fff; }

 

<head>  
    <style>

        * {
            margin: 0;
            padding: 0;
        }

        p {
            font-style: italic; /* 글자 스타일 */
            color: red !important /* 글자 색상. 중요 스타일은 !important 붙임 */
        }

        p {
            color: orange; /* 글자 색상 */
        }
    </style>
</head>
<body>
    <h1>디자인스킬업</h1>
    <p style="color:blue;">
        2D 그래픽은 모든 그래픽에서 기본이라 할 수 있습니다. 그래픽 작업에서 높은 비중을 차지합니다.
    </p>
</body>

출력 결과


💡 소스코드의 작성 순서

    -  스타일 시트에서 중요도와 적용범위가 같아면 그 다음은 스타일을 정의한 소스 순서로 우선순위가 정해진다.

        ➡️  나중에 작성한 스타일이 먼저 작성한 스타일을 덮어쓴다.

<head>
     <style>
        * {
            margin: 0; /* 바깥여백 */
            padding: 0; /* 안쪽여백 */
        }
        body {
            background: #000000; /* 배경색 지정. #000 -> 검정색 */
            color: white; /* 글자색 */
        }
        body {
            background: #999; /* 동일한 속성에 값을 지정하는 경우 나중의 것이 적용됨 */
            font-family: '돋움'; /* 기본 글꼴 돋움 */
            font-size: 10px; /* 글자 크기 10px */
        }
        body {
            line-height: 30px; /* 줄 간격 30px */
        }
        a {
            text-decoration: none; /* a 속성을 가진 링크에 어떤 꾸밈도 하지 않음 */
            color: yellow; /* 링크를 지정한 글자의 색상을 노란색으로 지정 */
        }
        .color1 {
            color:green;
        }
    </style>
</head>

<body>
    <h4>Artwork Concept Drawing</h4>
    <h1 class="color1">아트웍 컨셉 드로잉</h1>
    <p class="color1">
        편집 <a href="#">포트폴리오</a>에 포함될 수 있는 북커버 및 동화책 삽화 제작, 웹 포트폴리오에 포함될 수 있는 아트웍 실습,
        3D 캐릭터 디자인이나 모션 그래픽에 사용할 수 있는 아트웍 표현에 대하여 학습합니다.
    </p>
</body>

출력 결과


 

2) 스타일 상속

 

👾  웹 문서에서 사용하는 여러 태그는 서로 포함 관계

       ▶️ 이 때 포함하는 태그를 부모 요소, 포함된 태그를 자식요소
👾  '스타일 상속' : 부모 태그에 특정 값을 적용 시 아래, 즉 하위 요소에도 그 속성들이 그대로 적용
       ▶️  예를 들어 정렬 text-align, color, font-size...

       ▶️   body 태그는 웹 문서에서 사용한 모든 태그의 부모요소

<head>
    <meta charset="UTF-8">
    <title>스타일시트</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
       
        body {
            font-family: '돋움'; /* 글꼴 */
            color: red; /* 글자 색상 */
        }
    </style>
</head>
<body>
    <h1>디자인과정</h1>
    <ul>
        <li>웹학과</li>
        <li>편집디자인학과</li>
        <li>CG학과</li>
        <li>모션영상학과</li>
        <li>건축인테리어학과</li>
        <li>기계학과</li>
    </ul>
</body>

출력 결과

 

 

 

 

 

[ 내용 참고 : IT 학원 강의 및 책 'Do it HTML+CSS+자바스크립트 웹 표준의 정석' ]

+ Recent posts