로그인 바로가기 하위 메뉴 바로가기 본문 바로가기
난이도
심화

웹 프로그래밍(풀스택)

임시 이미지 [코스설계] Front-End 윤지수
http://www.boostcourse.org/web316/notice/2490
좋아요 4758 수강생 48438
아래의 글은 BOOSTER 서포터즈로 활동하고 뿌힁뿌힁(tmfrl1***)님이
작성한 부스트코스 후기입니다.
여러분들의 성원에 더 노력하는 부스트코스가 되겠습니다.
감사합니다.
******************************************
2)작성 날짜: 20/02/14
 
(본문 내용)

안녕하세요 Booster 2기 이슬기입니다!

오늘은 웹의 스타일을 정할 수 있는 css에 대해서 배워보도록 하겠습니다.

더욱 자세한 강의는 아래 링크에서 무료로 수강하실 수 있습니다:)

[부스트코스] 웹 프로그래밍 오리엔테이션 : edwith

- 부스트코스

www.edwith.org

​

CSS 선언방법

- 선택자와 property, value로 구성된다.

span {

__ color : red;

}

· span : selector(선택자)

· color : property

· red : value

​

​

style을 HTML페이지에 적용하는 세 가지 방법

· inline

· internal

· external

​

*But, inline방식을 선호하지는 않는다.

구조를 표현하는 HTML 안에 style을 표현하는 CSS가 들어있으니까 구조와 스타일이 섞여있으므로, 유지보수 어렵고 관리 어렵다.

 

1. inline

HTML 태그 안에다가 적용합니다.

다른 CSS 파일에 적용한 것 보다 가장 먼저 적용합니다.

<p style="border:1px solid gray;color:red;font-size:2em;">

​

2. internal

style 태그로 지정합니다.

구조와 스타일이 섞이게 되므로 유지보수가 어렵습니다.

별도의 CSS파일을 관리하지 않아도 되며 서버에 CSS파일을 부르기 위해 별도의 브라우저가 요청을 보낼 필요가 없습니다.

<head> <style> p { font-size : 2em; border:1px solid gray; color: red; } </style> </head> <body> <div>...</div> </body>

3. external

외부파일(.css)로 지정하는 방식입니다.

CSS 코드가 아주 짧지 않다면 가급적 이 방법으로 구현하는 것이 가장 좋습니다.

internal 코드와 같은 css코드를 구현하고, style.css와 같은 별도 파일로 만듭니다.

이후에 아래처럼 link태그로 추가하면 됩니다.

<html> <head> <link rel="stylesheet" href="style.css"> </head> <body> <div> <p> <ul> <li></li> <li></li> <li></li> <li></li> </ul> </p> </div> </body> </html>

4. 우선순위

inline > internal == external

​

​

상속과 우선순위 결정

상위에서 적용한 스타일은 하위에도 반영된다.

따라서 여러 단계로 중첩된 엘리먼트마다 매번 같은 색상과 글자 크기를 부여하지 않아도 된다.

​

* But, box-model이라고 불리는 속성들(width, height, margin, padding, border)과 같이 크기와 배치 관련된 속성들은 하위엘리먼트로 상속되지 않는다.

​

​

「internal과 external은 같은 우선순위를 가진다?」

​

<head> <style>div { color:red; }</style> <link rel="stylesheet" href="css.css"> </head>

다음과 같이 style 태그에선(internal 방식) color를 red로 주고, css.css 파일에선 color를 blue로 준다면

더 나중에 선언된 external 방식의 css 내용이 반영된다. 즉, blue색깔로 나오게 된다!

따라서, internal과 external은 같은 우선순위로 결정된다고 할 수 있다.

* 일반적인 CSS위치는 css파일(external)에 두고 그 아래 style태그를 사용해서(internal 방식) 표현하므로 그런 경우는 internal > external

​

​

<div id="a" class="b"> text.... </div>
#a{ color : red; } .b{ color : blue; } div{ color : green; }

위와 같은 경우에는 id > Class > Element 순으로 우선순위를 가진다.

=> 위 코드에서는 id인 a의 색상이 적용되게 된다.(이런 성질은 "cascading"이라고 한다.)

​

선언방식에 따른 차이

같은 선택자(selector)라면 나중에 선언한 것이 반영되고,

선택자의 표현이 구체적인 것이 있다면 먼저 적용된다.

​

· body > span (O)

· span (X)

동일 우선순위면 더 나중에 선언한 것!

그리고, 더 구체적인 것!

CSS의 기본 스타일 변경하기

​

font 색상 변경

color : red;

color : rgba(255, 0, 0, 0.5);

color : #ff0000; //16진수 표기법으로 가장 많이 사용되는 방법

​

font 사이즈 변경

font-size : 16px;

font-size : 1em;

​

배경색

background-color : #ff0;

background-image, position, repeat 등의 속성이 있습니다.

background : #0000ff url(“.../gif”) no-repeat center top; //한 줄로 정의도 가능

​

글씨체/글꼴

font-family:"Gulim";

font-family : monospace;

* ,(comma)로 구분지어 쭉 나열해서 쓰면 적용되는 폰트가 나올때까지 다음 폰트로 넘어가게 된다.

​

​

​

엘리먼트가 배치되는 방식

엘리먼트를 화면에 배치하는 것을 layout 작업이라고도 하고 Rendering 과정이라고도 한다.(편의상 '배치'라고 부르겠다.)

기본 엘리먼트는 위에서 아래로 배치되는데, 웹사이트의 배치는 다양한 표현이 가능해야 하므로, 다양한 속성을 활용해야 한다.

​

​

엘리먼트가 배치되는 방식 (display:block)

display속성이 block이거나 inline-block인 경우 그 엘리먼트는 벽돌을 쌓든 블록을 가지고 쌓입니다.

​

엘리먼트가 배치되는 방식 (display:inline)

display 속성이 inline인 경우는 우측으로, 그리고 아래쪽으로 빈자리를 차지하며 흐릅니다.

높이와 넓이를 지정해도 반영이 되지 않습니다.

​

엘리먼트가 배치되는 방식 (position:static, relative, absolute)

엘리먼트 배치가 순서대로만 위아래로 또는 좌우로 흐르면서 쌓이기만 하면, 다양한 배치를 하기 어렵습니다.

position 속성을 사용하면 상대적/절대적으로 어떤 위치에 엘리먼트를 배치하는 것이 수월합니다.

 

1. position 속성으로 특별한 배치를 할 수 있습니다.

position 속성은 기본 static입니다.

그냥 순서대로 배치됩니다.

 

2. absolute는 기준점에 따라서 특별한 위치에 위치합니다.

top / left / right / bottom 으로 설정합니다.

기준점을 상위엘리먼트로 단계적으로 찾아가는데 static이 아닌 position이 기준점입니다.

 

3. relative는 원래 자신이 위치해야 할 곳을 기준으로 이동합니다.

top / left / right / bottom로 설정합니다.

 

4 fixed는 viewport(전체화면) 좌측, 맨 위를 기준으로 동작합니다.

​

​

​

​

​

지금까지 CSS의 기본 개념에 대해서 알아봤는데요,

더욱 자세한 내용은 위에 링크를 참고하시면 좋을 것 같습니다!

 


 ******************************************