본문 바로가기
Web

생활코딩 css 정리(Day 1)

by 수짱수짱 2022. 1. 14.

css의 이점

- 웹페이지 유지보수 편리

- 가독성 증가

- html가 정보에 전념하도록 함

- css통해 디자인하는 것이 효율적

 

css를 삽입하는 방법

1. style 태그 이용

2. style 속성을 이용

 

여러개의 효과를 삽입하는 경우 ; 으로 구분한다. 


1. style 태그

  <style>
    a {
      color:red;
      text-decoration: none;
    }
  </style>

해당 html 코드에 있는 모든 a 태그에 대해 color를 red로 설정

디자인과 관련된 코드는 <style>코드 안에 갇혀있게 될 것이다.

 

a {} 라는 코드는 효과를 어느 태그에게 지정하는 것인지를 알려준다. 즉, 우리가 주고 싶은 효과를 누구에게 줄 것인지 선택한다는 점에서 선택자라고 한다.

color:black은 효과라고 하고 영어로는 declaration(선언)이라고 한다.

이 중 color는 속성(Property)이라고 하며 black은 속성의 값(value)이라고 한다.

 

text-decoration: none; 는 모든 a태그에 대한 장식을 없앤다.

 


2. style 속성

    <li><a href="1.html"> HTML</a> </li>
    <li><a href="2.html" style="color:blue; text-decoration:underline"> CSS</a> </li>
    <li><a href="3.html"> JavaScript</a> </li>

CSS에 대하여 style 속성을 이용해 색상을 blue로 설정

속성의 값을 브라우저는 css 문법에 따라 해석한다. 해석한 결과를 속성이 위치한 태그에 적용한다.

 

style= 은 html의 속성이다.

color:red는 속성의 값으로 css의 효과이다.

 

sytle 태그를 직접 사용한 경우는 태그가 위치한 태그에게 효과를 줄 것이기 때문에 선택자를 사용할 필요가 없다.

 

text-decoration:underline를 추가함으로서 css에만 밑줄 효과를 넣어줄 수 있다.

 

 

~ chap.혁명적 변화

 


선택자

 

HTML 속성 class= 를 사용하여 같은 그룹으로 묶을 수 있다.

    .saw{
      color:gray;
    }
    .active{
      color:red;
    }

class가 saw인 모든 태그를 가르키는 선택자

class가 active인 모든 태그를 가르키는 선택자

 

    <li><a href="1.html" class="saw"> HTML</a> </li>
    <li><a href="2.html" class="saw active"> CSS</a> </li>

이 2개가 회색으로 설정된다. 

class의 값은 여러 개가 들어올 수 있고 구분은 띄어쓰기로 된다. 하나의 태그에는 여러 개의 속성이 들어올 수 있고 여러 개의 선택자를 통해서 하나의 태그를 공동으로 제어할 수 있다.

 

단, 이 방법은 좋은 것이 아니다.

CSS가 있는 태그는 2개의 class 영향을 받고 있다.

이 폰트의 색상은 왜 red로 설정됐는가? .saw가 .active보다 늦게 설정되어 있기 때문이다. 즉, 가장 최근에 설정된 class가 더 높은 우선순위를 갖는다. = 가장 마지막에 설정된 class 선택자

 

우선순위를 선택하기 위해서는 ? id 선택자를 사용한다. 

 

    #active{
      color:red;
    }

    .saw{
      color:gray;
    }
    <li><a href="2.html" class="saw" id="active"> CSS</a> </li>

id선택자(#active)와 class선택자(.saw)가 붙으면 id선택자가 우선순위가 높다.

* 클래스 선택자가 태그 선택자보다 우선순위가 높다.

 

 

왜 이런 우선순위를 갖는가? ( id선택자 > class선택자 > 태그선택자 )

id 선택자는 css에서 id선택자의 값이 active인 태그를 한 번 사용했기 때문에 그 다음엔 사용해선 안된다.

id의 값은 단 한 번만 사용할 수 있다는 뜻이다.

 

 

~ css선택자를 스스로 알아내는 방법


박스모델

 

h1의 태그는 화면 전체의 부피를 가지고 a태그는 자신의 크기만큼만의 부피를 가진다.

화면 전체의 부피를 가지는 태그를 block이라고 한다. 

block level, inline level tag example&nbsp;

 

 

    <style>
        /*
        block level tag(element)
        */
        h1{
          border-width:5px;
          border-color:red;
          border-style:solid;
        }
        /*
        inline tag(element)
        */
        a{
          border-width:5px;
          border-color:red;
          border-style:solid;
        }
    </style>

단 block level, inline은 display 속성값의 기본값일뿐 css를 통해 언제든 기본값을 변경할 수 있다.

 

        h1,a{
          border: 5px solid red;
        }

,를 통해 중복을 제거해줄 수 있다. 또한, border:를 통해서도 중복을 제거할 수 있다.

 

 

페이지도구
페이지도구

페이지도구(개발자도구)를 이용하여 css으로 적용된 style을 확인할 수 있다. 이를 통해 섬세한 작업이 가능하다.

단축키는 F12

 


그리드

 

div 태그는 아무런 의미 없이 디자인 용도로 사용하는 태그.

div는 block level element, span은 inline element

 

<style>
      #grid{
        border:5px solid pink;
        display:grid;
        grid-template-columns: 150px 1fr;
      }
      div{
        border:5px solid gray;
      }
    </style>
  <body>
    <div id="grid">
      <div>NAVIGATION</div>
      <div>ARTICLE</div>
    </div>
  </body>

NAVIGATION과 ARTICLE을 같은 부모를 갖도록 묶어주었다. 

grid-template-columns: 150px 1fr; 은 NAVIGATION은 150px의 크기를, 그 나머지 크기를 ARTICLE이 갖는다는 의미이다.

만약 2fr 1fr이면 전체화면의 2:1이라는 의미임. 내용이 많아지면 자동으로 그 크기에 맞춰서 커진다. 

 

    #grid ol{
      padding-left: 33px;
    }

부모가 grid인 ol태그만 해당되는 디자인

 

 

~Day1