[부스트코스]{1. 웹 프로그래밍 기초}(3. CSS)_2. CSS style 변경 & element가 배치되는 방법! CSS layout
CSS 기본 스타일 변경 하기
font 색상 변경 |
|
font 사이즈 변경 |
|
배경색 |
|
글씨체/ 글꼴 |
|
#예시
CSS layout
#엘리먼트가 배치되는 방식
엘리먼트를 화면에 배치하는 것을 layout 작업이라고도 하고, Rendering 과정이라고도 한다.
기본 엘리먼트는 위에서 아래로 배치되는 것이 기본이다. 하지만 웹사이트의 배치는 다양하게 표현 가능해야 하므로, 이를 다양한 방식으로 배치할 수 있도록 다양한 속성을 활용한다.
display | block, inline, inline-block |
position | static, absolute, relative, fixed |
float | left, right |
#display: block
display속성이 block이거나 inline-block인 경우 그 엘리먼트는 벽돌을 쌓는 것 처럼 블록을 가지고 쌓인다.
#display: inline
display 속성이 inline인 경우는 우측으로, 그리고 아래쪽으로 빈자리를 차지하며 흐른다.
높이와 넓이를 지정해도 반영이 되지 않는다.
#position: static, relative, absolute
1. position 속성으로 특별한 배치를 할 수 있습니다. |
position 속성은 기본 static이다. 그냥 순서대로 배치된다. |
2. absolute는 기준점에 따라서 특별한 위치에 위치합니다. |
top / left / right / bottom 으로 설정한다. 기준점을 상위 엘리먼트로 단계적으로 찾아가는데 static이 아닌 position인 엘리먼트가 기준점이 된다. |
3. relative는 원래 자신이 위치해야 할 곳을 기준으로 이동합니다. |
top / left / right / bottom로 설정한다. |
4 fixed는 viewport(전체화면) 좌측, 맨 위를 기준으로 동작합니다. |
![]() |
#margin
margin으로 배치가 달라질 수 있다.
margin은 위 / 아래 / 좌 / 우 엘리먼트와 본인 간의 간격이다. 따라서 그 간격만큼 내 위치가 달라진다.
#float
float 속성으로 원래 flow에서 벗어날 수 있고 둥둥 떠다닐 수 있게 된다.
일반적인 배치에 따라서 배치된 상태에서 float는 벗어난 형태로 특별히 배치된다.
따라서 뒤에 선언된 block엘리먼트가 float 된 엘리먼트를 의식하지 못하고 중첩돼서 배치되게 된다.
![]() |
left와 right를 통해 부유속성을 지정시 display는 무시된다. (none은 제외) |
float의 속성은 이런 특이성 때문에 웹사이트의 전체 레이아웃 배치에서 유용하게 활용된다.
#box-model
블록 엘리먼트의 경우 box의 크기와 간격에 관한 속성으로 배치를 추가 결정한다.
content<padding<border<margin
#엘리먼트의 크기
block엘리먼트의 크기는 기본적으로는 부모의 크기만큼을 가진다.
예를 들어, width:100%는 부모의 크기만큼을 다 갖는 것과 같다.
#box-sizing과 padding
box-sizing | 박스의 크기를 어떤 것을 기준으로 계산할지를 정하는 속성 |
|
padding 속성을 늘리면 엘리먼트의 크기가 달라질 수 있다. box-sizing 속성으로 이를 컨트롤 할 수 있다.
box-sizing 속성을 border-box로 설정하면 엘리먼트의 크기를 고정하면서 padding 값만 늘릴 수 있다.
#추가 개념: padding과 margin 비교하기
#layout 구현 방법
전체 레이아웃은 float를 잘 사용해서 2단, 3단 컬럼 배치를 구현한다. 최근에는 css-grid나 flex 속성 등 layout을 위한 속성을 사용하기 시작했으며 브라우저 지원범위를 확인해서 사용해야한다.
특별한 위치에 배치하기 위해서는 position absolute를 사용하고, 기준점을 relative로 설정한다.
네비게이션과 같은 엘리먼트는 block 엘리먼트를 inline-block으로 변경해서 가로로 배치하기도 한다.
엘리먼트안의 텍스트의 간격과 다른 엘리먼트간의 간격은 padding과 margin 속성을 잘 활용해서 위치시키면 된다.
#참고 자료
https://ofcourse.kr/css-course/float-%EC%86%8D%EC%84%B1
CSS float 속성 - ofcourse
개요 float 라는 단어는 원래 ‘뜨다’ 라는 의미이며, 원래 웹페이지에서 이미지를 어떻게 띄워서 텍스트와 함께 배치할 것인가에 대한 속성입니다. inherit: 부모 요소에서 상속 left: 왼쪽에 부유하는 블록 박스를 생성. 페이지 내용은 박스 오른쪽에 위치하며 위에서 아래로 흐름. right: 오른쪽에 부유하는 블록 박스를 생성. 페이지 내용은 박스 왼쪽에 위치하며 위에서 아래로 흐름. 이후 요소에 clear 속성이 있으면 페이지 흐름이 달라짐.
ofcourse.kr
https://www.w3schools.com/css/css_boxmodel.asp
CSS Box Model
CSS Box Model The CSS Box Model All HTML elements can be considered as boxes. In CSS, the term "box model" is used when talking about design and layout. The CSS box model is essentially a box that wraps around every HTML element. It consists of: margins, b
www.w3schools.com
https://ofcourse.kr/css-course/margin-padding-%EC%86%8D%EC%84%B1
CSS margin,padding 속성 - ofcourse
개요 margin과 padding 속성은 각각 바깥쪽 여백, 안쪽 여백을 의미합니다. width, height 속성과 마찬가지로 숫자 뒤에 단위를 표시하여 적습니다. margin과 padding는 border 을 경계로 나뉩니다. 방향 방향마다 여백을 다르게 설정할 수 있습니다. margin: 20px 같은 표현은 상하좌우 모두 20px을 의미합니다 margin: 30px 10px은 상하 30px, 좌우 10px을 의미합니다. margin: 30px 10
ofcourse.kr
#부스트코스 강의
https://www.edwith.org/boostcourse-web/lecture/16675/
[LECTURE] 4) CSS 기본 Style 변경하기 : edwith
들어가기 전에 글자색, 배경색, 글꼴은 어떻게 바꾸는 것일까요? 이번 시간에는 텍스트 속성 및 옵션값을 변경하는 방법에 대해서 배워보도록 하겠습니다. 학습 목표 CSS 없이 먼... - 부스트코스
www.edwith.org
https://www.edwith.org/boostcourse-web/lecture/16677/
[LECTURE] 5) Element가 배치되는 방법(CSS layout) : edwith
들어가기 전에 CSS의 배치를 위해서는 중요한 여러 가지 개념을 알고 있어야 합니다. 그중에서 block과 inline의 차이 그리고 position 속성을 이해해야 합니다. 또한... - 부스트코스
www.edwith.org