Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- java입문
- 파일이동버튼
- Eclipse
- object
- form
- 배열
- js
- 맨땅에 해딩
- jdbc
- Collection
- MySQL
- 컬렉션프레임워크
- 점프 투 파이썬
- CSS
- html
- list
- 오버라이딩
- emmet
- cmd
- 필드
- javascript
- java기초
- Git알아보기
- 기본코드
- 이클립스
- 버튼페이지이동
- arraylist
- Git이해하기
- java
- 데이터베이스연동
Archives
- Today
- Total
단단히
CSS_FlexLayout (플렉스 레이아웃) 본문
레이아웃 ( Layout )
블록 레벨 요소를 사용하여 결과 화면에서 2-3열 구조를 만들거나 특정 공간에 배치하는 것.
id속성을 주로 사용하며 필요하면 class속성을 사용한다.
요소 | 내용 | ||
header | 머리글 영역 | ||
nav | 전체메뉴 또는 부분메뉴 영역 전체 메뉴를 GNB(Global Navigation Bar), 부분 메뉴를 LNB(Local Navigation Bar)이라고 한다. 줄여서 모두 내비게이션 메뉴라고한다. |
||
main | 본문 영역 | ||
aside | 본문영역이 아닌 보조 영역 | ||
footer | 바닥글 영역 | ||
div | 시멘틱 요소로 명확하게 지정할 수 없는 영역에 사용 |
2022.07.27 - [HTML,CSS/개념 정리] - Semantic(시맨틱) 요소
<body>
<div id="wrap">
<header id="header">헤더</header>
<main id="main">메인</main>
<aside id="aside">기타</aside>
<footer id="footer">푸터</footer>
</div>
</body>
|
레이아웃의 종류( 5가지 )
플렉스( Flex ), 포지션( Position ), 플로트( Float ), 디스플레이 테이블( Display Table ), 그리드( Grid )
※ Table 요소와 Frameset 요소를 사용하여 레이아웃을 만들지 않는다.
왜냐하면, 반응형 웹(Responsive Web), 적응형 웹(Adaptive Web)이 구현되지 않기 때문이다.
플렉스 레이아웃을 적용 / 2열 구조 만들기
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>FlexLayout</title>
<style>
header#header {
width: 300px;
padding: 10px;
border: 1px solid #000;
display: flex;
}
#left,
#right {
border: 1px solid rgb(255, 0, 0);
flex: 1;
}
</style>
</head>
<body>
<header id="header">
<div id="left">왼쪽 배치 영역</div>
<div id="right">오른쪽 배치 영역</div>
</header>
</body>
</html>
나눠야하는 전체 공간( 부모 요소 )에 display: flex; 를 적용한다.
그리고 나눠지는 공간(자식 요소)을 정확히 1 : 1로 나눌 때는 flex: 1; 을 적용한다.
◆ 부모 요소 : 플렉스 컨테이너
◆ 자식 요소 : 플렉스 박스
특정 부분만 차지하고 다른 쪽은 남은 공간 차지
왼쪽 배치의 가로폭을 300px으로 설정하고 오른쪽 영역은 flex : 1; 을 적용한다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>FlexLayout</title>
<style>
header#header {
width: 500px;
padding: 10px;
border: 1px solid #000;
display: flex;
}
#left {
width: 300px;
padding: 10px;
border: 1px solid rgb(255, 0, 0);
}
#right {
border: 1px solid rgb(0, 38, 255);
padding: 10px;
flex: 1;
}
</style>
</head>
<body>
<header id="header">
<div id="left">왼쪽 배치 영역</div>
<div id="right">오른쪽 배치 영역</div>
</header>
</body>
</html>
만약 양쪽, 오른쪽 영역과 왼쪽 영역의 특정 크기를 지정하고 싶다면 부모 CSS는 동일하게 display: flex;를 지정하고 각 항목에 원하는 width를 지정하면 된다.
크기 지정한 영역 위치 지정 ( 부모 CSS / justify-content )
중간 정렬
#header {
width: 1000px;
...
display: flex;
justify-content: center;
}
#header>div#left {
border: 1px solid #08f;
width: 300px;
}
#header>div#right {
border: 1px solid #0f8;
width: 400px;
}
양쪽 정렬
#header {
width: 800px;
...
display: flex;
justify-content: space-between;
}
#header>div#left { width: 200px; }
#header>div#right { width: 300px; }
양쪽 정렬 ( 여백공간 균등 분할)
#header {
width: 800px;
...
display: flex;
justify-content: space-around;
}
#header>div#left { width: 200px; }
#header>div#right { width: 300px; }
여백의 공간을 균등하게 분할시켜 나눈 것이다. 해당 양쪽의 여분(margin)이 동등하게 들어가 있다.
'HTML,CSS > 개념 정리' 카테고리의 다른 글
간단한 버튼으로 다른 페이지(.jsp) 이동하기 (0) | 2022.09.22 |
---|---|
HTML 특수기호들 (0) | 2022.08.05 |
CSS 선택자 (0) | 2022.08.03 |
CSS 기초 사용법 (0) | 2022.08.01 |
Form 요소 (0) | 2022.07.29 |
Comments