On a couch

[생활코딩] WEB2 - CSS 본문

프론트엔드 공부/웹개발 기초 w.생활코딩

[생활코딩] WEB2 - CSS

couch 2022. 1. 2. 14:27

1. css 도입의 이유

1) 중요한 '정보(html)'와 디자인 기능(css)을 분리해서 페이지 내 정보의 가치가 손상되지 않게 함 

2) css를 통해 디자인하는 것이 훠얼씬 효율적 (중복 코드 x)

 

2. css를 표현하는 2가지 방법

1) <head>태그 안에 <style></style>태그로 감싸기 <- css

   <style>

     a {               <- selector 선택자

     color: green;   <- declaration 선언, 효과

   property : value

     }

   </style>

2) 본문 태그 안에 style="color:green; text-decoration:underline"으로 속성 부여하기  <- css가 아니라 html의 속성

 

3. class 묶기

1. 묶고 싶은 부분의 html 태그 안에 동일한 class="111 222 333" 값 주기

  -> 서로 다른 클래스를 중첩해 넣을 수 있으며

  -> 띄어쓰기로 구분

 

2. css 태그 안에 .111 {  }

   .222 {  } 로 효과 넣기

  -> 선택자로 class를 입력할 시 앞에 점 찍어야 함

 

4. 선택자 권력 순위

   태그 << class << id

  *  class 선택자보다 강한 것은 id 선택자. css 안에는 #333 {  } 형식으로 표현

  * 같은 권력 순위이면 나중에 입력된 명령을 높은 우선순위로 처리함

     -> but   id값은 페이지 내 단 1번만 등장. 더 구체적이므로 포괄적(class)인 것보다 우선순위 높음


5. Element의 크기

* tag와 element는 같은 말

1. h1태그는 화면 전체 면적을, 일반 태그는 글자 만큼의 면적을 차지함.

  -> 기본 속성 상 hi은 display : block, 일반 태그는 display : inline으로 설정되어 있기 때문

  -> 이런 속성은 css 태그 안에 display 프로퍼티 넣어서 수정할 수 있음

 

2. 테두리/간격 설정

   border-width : 5px;

   border-color : green;

   border-styel : solid;

     =>    border : 5px green solid;

   margin : 10px;

   padding: 10px;

  3. 박스모델 보기

    웹페이지 - 마우스 오른쪽 클릭 - 검사 : 블럭 별 설정값(박스모델) 보임

    -> 페이지 구성 시 박스모델을 확인해 가면서 수정

 

6. 그리드

1. <div>, <span>

 그리드 기능을 사용하려면 '부모 태그'가 필요하다. 무엇을 사용할 것인가?

  -> div :  h1과 비슷하지만 아무 '의미'가 없는 디자인용 block level element

  -> span :  "  inline element

 

2. 세로 분할 그리드 적용

 (1) 부모 div 안에 세로로 나란히 있을 두 개의 colum(열)을 최상위 태그로 묶어줌

  <div>

    <ul>

        <li>

        <li>

        <li>

    </ul>

    <div>

       <a> </a>

       <ul> </ul>

    </div>

 </div>

 

 (2) 부모 div에 id 프로퍼티 넣고, css에서 grid 설정 

  -> value에 첫태그 너비, 다음태그 너비를 차례로 적는다

 

  #grid {

  grid-template-columns : 150px  1fr;

                                 첫태그  다음태그
   }

 

 *nfr: 전체 화면 너비를 나눠먹는 비율을 설정

  -> value 를 이렇게도 줄 수 있음 : 2fr 3rfr; (왼/오 화면비율을 2:3으로 반응형으로 나누기)

 


7. 미디어쿼리

 '화면이 900px보다 작아지면 / div 효과를 없애고 / 제목 보더라인도 없애고 싶다'

 -> '화면에 900px보다 작아지면' = '화면이 최대 900px일 때까지는' = @media(max-width:900px) {    }

 -> 'div 효과를 없애고 싶다' = div { display : none; }

 -> '제목 보더라인도 없애고 싶다' = h1 { border-bottom : none; }

 

8. 화룡점정 : 스타일시트

이 기나긴 style 태그를 html 머리 안에 넣고 있을 필요가 없다.

<link rel="stylesheet" href="style.css">

-> 스타일시트 형식을 링크할 건데, 위치는 style.css 파일의 정보다

 

*css 파일을 한 번 다운로드 받으면 바뀌기 전까지 다시 받을 필요가 없기 때문에,

 캐싱(재사용)을 통해 망 사용료를 낮추고 효율성을 높일 수 있다.


*Keep in mind : 중복의 제거 (1억개의 코드라고 생각해 보기)

*사용 가능한 기능인지 체크하는 사이트 : https://caniuse.com/