안녕하세요 인포돈 입니다.
기업에는 CSS에서 가장 기초지만, 많이 사용하고 모르면 CSS를 다루기 힘들어지는 display와 position에 대해 이해해 보자
Display
css를 활용하기 위해서 display의 개념을 확실히 이해하는 게 좋다. display에 넣을 수 있는 값들이 굉장히 많지만, 전문적인 frontend를 꿈꾸고 있지 않는 이상, 많은 개념을 알 필요가 없다. 크게 2가지만 알고 있으면 된다.
1) display : block
해당 block의 기능은 아래 특성만 기억하면, 완벽하다.
- 설정되어 있지 않으면, 너비는 최대한으로 넓어진다.
- 설정되어 있지 않으면, 높이는 최소한으로 줄어든다.
- 세로 배열로 정렬된다.
- 이를 블록화라고 부른다.
정말 별로 어렵지 않다. 너비가 최대가 되면, 다음에 오는 Tag나 Text는 당연히 다음 줄로 가게 된다. 즉, 한 줄을 모두 차지하게 된다. 이러한 특성 때문에 세로 배열 정렬이 된다고 하는 것이다.
2) display : inline-block
해당 inline-block의 기능은 아래 특성만 기억하면, 완벽하다.
- 설정되어 있지 않으면, 너비는 최소한으로 넓어진다.
- 설정되어 있지 않으면, 높이는 최소한으로 줄어든다.
- 가로 배열로 정렬된다.
- 이를 글자화라고 부른다.
여기는 더 어렵지 않다. 너비가 최소한으로 되기 때문에, 다음에 오는 Tag나 Text는 당연히 옆 칸에 오게 된다. 따라서 가로 배열로 정렬된다고 한다.
* Tip
- hidden은 해당 태그가 보이지 않게 하는 속성이다.
- inline은 inline-block과 동일하지만, width, height, margin, padding과 같은 속성이 적용되지 않는다.
- a, span 태그는 기본적으로 inline이다.
- img 태그는 기본적으로 inline-block이다.
Position
css를 활용하기 위해서 position의 개념을 확실히 이해하는 게 좋다. position에 넣을 수 있는 값들이 굉장히 많지만, 전문적인 frontend를 꿈꾸고 있지 않는 이상, 많은 개념을 알 필요가 없다. 크게 4가지만 알고 있으면 된다.
1) position : static
모든 태그들의 기본 값으로 설정되어 있는 속성이다. 해당 속성의 특징은 겹치기가 불가능하다는 것이고, 일반적으로 사용하는 우리의 태그들의 특징이 바로 그 특징이라고 생각하면 된다.
2) position : relative
뒤에서 확인해볼 absolute, fix 속성을 묶어 놓는 역할을 한다. (겹치기 불가능)
3) position : absolute, fix
부모와 관계없이 자유롭게 화면을 움직일 수 있는 속성이다. 쉽게 유령화라고 부른다. (겹치기 가능)
그러면 이러한 absolute와 fix의 차이는 아주 간단하다. fix의 경우 스크롤을 내려도 계속 해당 위치에 고정이 되고, absolute의 경우 따라오지 않는다는 차이점이 전부이다.
Position 활용 (relative, absolute)
<section>
<div></div>
<div></div>
<div></div>
<div></div>
</section>
section>div {
position:absolute;
width:50%;
height:50%;
}
section>div:first-child {
top:0;
left:0;
background-color:black;
}
section>div:nth-child(2) {
top:0;
left:50%;
background-color:green;
}
section>div:nth-last-child(2) {
top:50%;
left:0%;
background-color:red;
}
section>div:last-child {
top:50%;
left:50%;
background-color:gold;
}
이런 식으로 하면 아래와 같이 출력이 된다.
이때 relative와 해당 코드를 접목시키면 이렇게 유령화 된, 태그들을 묶어 둘 수 있다. 이때 absolute와 fix의 경우 지정된 위치는 relative를 가지고 있는 부모 태그를 기준으로 포지셔닝된다.
section {
width:200px;
height:200px;
border:10px solid red;
position:relative;
}
section > div {
position:absolute;
width:50%;
height:50%;
}
section > div:nth-child(1) {
top:0;
left:0;
background-color:black;
}
section > div:nth-child(2) {
top:0;
right:0;
background-color:gold;
}
section > div:nth-child(3) {
bottom:0;
left:0;
background-color:blue;
}
section > div:nth-child(4) {
bottom:0;
right:0;
background-color:green;
}
앞서 살펴본 display와 position만 이해한다면, 웬만한 웹 페이지 구현은 쉽게 만들 수 있다.
* Tip
absolute의 위치를 조정할 때는 top, right, bottom, left를 활용해서 위치를 조정한다.
- inline-block, block 가로 정렬
inline-block을 가운데 정렬하기 위해서 부모 Tag에서 text-align : center; 속성을 넣어주면 된다.
block을 가운데 정렬하기 위해서 margin : 0 auto; 속성을 넣어주면 된다.
'FrontEnd > HTML&CSS' 카테고리의 다른 글
[HTML/CSS] 1차, 2차, 3차 드롭 다운 메뉴 바 구현하기 (0) | 2022.09.06 |
---|