웹 개발 공부 : Front-end

프론트엔드 #4 CSS - 1

Developer KTU 2020. 7. 31. 20:15
반응형

HTML에 대한 내용과 주요 태그들에 대해 알아보았다. 현직 프론트에드 개발자 분들도 HTML의 모든 태그들을 완전히 다 외우진 않고, MDN 요소 참고 사이트에서 검색해보고, 속성들을 참고하여 사용한다고 한다. 이제 HTML에 대해 알아봤으니, HTML하면 빠지지 않는 친구 CSS에 대해 알아보겠다.

1. CSS?

Cascading Style Sheet 약자

만들어둔 HTML 페이지를 스타일리쉬하게 꾸며주는 역할을 한다.

웹사이트를 꾸밀 3가지로 나누어 생각해볼 있다!

1) Author style : css파일

2) User style : 사용자가 지정하는 스타일

3) Brower : 브라우저에서 기본적으로 제공하는 스타일

-> 여기서 Cascading '폭포처럼 떨어지는' Author style -> User style -> brower 순으로 떨어지듯이 진행된다

 

Cascading 연결고리를 끊어내는 유일한 녀석

! Important => 위와 같은 연결고리를 무시하고 우선순위를 다르게 적용할 있다.

==> ! Important HTML 구성단계에서 잘못 만들어졌거나 나쁜 아키텍쳐가 되었을때 사용된다. 그러므로 되도록이면 쓰이지 않게 하는것이 좋다.

 

2. 선택자

HTML 어떤 태그들을 고를것인지 정의하는 문법

* (Universal) : 모든 태그들을 고른다는

Tag이름 (type) : 해당 태그를 고른다는

#id (ID) : 해당 id 해당하는 태그를 고른다는

.class (class) : 클래스에 포함된 태그들을 고른다는

: (state) : 태그옆에 : 있다.

[] (attribute) : 해당하는 속성값들만 모아서 작성할 있다.]

+ : 다음 엘레먼트

Tag : nth-child(n) : n번째 태그 스타일링 (2n+3같은 형식도 가능)

Tag : nth-of-type(odd/even) : 홀수번째 / 짝수번째 태그 스타일링

Tag : last-of-type : 같은 태그 가장 마지막에 위치한 태그

Tag1, Tag2 : 태그1, 태그2 같이 스타일링

Tag:empty : 태그 비어있는 태그만 스타일링

Tag:not(~) : not안에 있는 조건이 없는 태그만 스타일링

 

CSS 미적용 EX)

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
  <ol>
    <li id="special">First</li>
    <li>Second</li>
  </ol>
  <button>Button 1</button>
  <button>Button 2</button>
  <div class="red"></div>
  <div clas="blue"></div>
  <a href="naver.com">Naver</a>
  <a href="googlenaver.com">Google</a>
  <a>Empty</a>
</body>
</html>

 결과는?

CSS 미적용

 

HTML에 CSS 적용 EX)

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <link rel="stylesheet" href="style.css" />  <!-- HTML에 CSS 적용-->
  <title>JS Bin</title>
</head>
<body>
  <ol>
    <li id="special">First</li>
    <li>Second</li>
  </ol>
  <button>Button 1</button>
  <button>Button 2</button>
  <div class="red"></div>
  <div clas="blue"></div>
  <a href="naver.com">Naver</a>
  <a href="googlenaver.com">Google</a>
  <a>Empty</a>
</body>
</html>
/*selector{
  property: value;
} */


* {
  color: green;
}

li{
  color: blue;
}

li#special {
  color: pink;
}

.red {
  width: 100px;
  height: 100px;
  padding: 20px 20px 20px 20px;
  margin: 20px 20px 20px 20px;
  border: 4px dashed red;
  background: yellow;
}

button:hover {
  color: red;
  background: beige;
}

a[href="naver.com"] {
  color: purple;
}

결과는?

 

기본적으로 태그 가까이에 있는 문법들이 우선순위가 높다

예를 들어 우선순위 :  * < 태그이름

같은 아이디로 태그를 하나 만들어도 똑같은 스타일이 적용된다.

예를 들어 <h1 id = "special">Hello</h1>, <li id="special">First</li> 같은

스타일이 적용됨

div 태그안이 비어있으면 스타일이 적용되지 않는다. 하지만 만약 div 태그안에 button 태그가 추가되면 그때 div 스타일이 적용된다. (div 비어있어도 높이와 너비, 배경색 등을 지정해주면 보인다.)

기본적으로 div 보여지지 않지만 CSS 통해서 보여지게 수도 있다.

같은 버튼이라도 button: hover (버튼위에 마우스가 올려진 상태)에서도 스타일링이 가능함

 

padding 컨텐츠안에 들어가는 공간 ( 노란색 박스의 크기가 바뀜)

margin 컨텐츠 밖에 들어가는 공간 (, 노란색 박스 바깥의 공간의 크기가 바뀜)

 

border 외곽선 개념인것 같음

 

CSS 속성값을 확인하는 사이트!!

MDN CSS reference : https://developer.mozilla.org/en-US/docs/Web/CSS/Reference

 

 

선택자를 쉽게 익힐 있는 게임 사이트!!!

https://flukeout.github.io/

반응형