반응형 웹이란
- 웹 사이트의 내용을 그대로 유지하면서 다양한 화면 크기에 맞게 웹사이트를 표시하는 방법
- 화면 크기에 반응해 화면 요소들을 자동으로 바꾸어 사이트를 구현하는것
- 가로 모드에 맞춘 레이아웃 변경 가능
- 사이트 유지보수가 용이
반응형 웹 구현을 위한 기술
- 뷰포트
- 실제 내용이 표시되는 영역
- 뷰포트를 지정하면 기기화면에 맞춰 확대/축소해서 내용 표시
- head태그 안에서 meta태그를 이용해 뷰포트 설정
- 미디어 쿼리
- 접속하는 장치(미디어)에 따라 특정한 css스타일을 사용하도록 함
- 기본 형태 : @media [only | not] 미디어유형 [and 조건] * [and 조건]
- only : 특정 웹브라우저(미디어 쿼리를 지원하는)에서만 조건을 인식하게 한다.
not : 지정한 미디어유형은 제외하고 적용시킨다. - 미디어 유형 :
all : 모든 미디어 유형 print : 인쇄 장치 * screen : 장치의 화면 * tv : 음성과 영상이 동시 출력되는 tv projector : 프로젝터 - 미디어 유형 ; screen만 사용해도 무방. 제일 많이 씀.
- 그리드 레이아웃
- 화면을 여러개의 컬럼(column)으로 나누어, 필요할 때 마다 컬럼들을 묶어서 배치하는 방법
- column : 열
row : 행
- 플렉스 박스 레이아웃
- 그리드 레이아웃을 기본으로, 플렉스 박스를 원하는 위치에 배치
- 여유공간에 따라 너비나 높이, 위치를 자유롭게 변형할 수 있다.
<!-- 그리드 레이아웃 예제 -->
<h3>그리드 레이아웃 예제</h3>
<div class="wrapper">
<div>A</div>
<div>B</div>
<div>C</div>
<div>D</div>
<div>E</div>
<div>F</div>
</div>
<br><hr>
<div class="wrapper">
<div class="box1">A</div>
<div class="box2">B</div>
<div class="box3">C</div>
</div>
/*
그리드 레이아웃 예제 style
*/
.wrapper{
display: grid;
/* 열의 개수 및 크기 : grid-template-columns
행의 개수 및 크기 : grid-template-rows
*/
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: 100px 100px;
/* 요소간의 간격 설정 */
grid-gap: 10px;
}
.wrapper div{
background-color: rgb(249, 226, 255);
border: 2px solid rgb(201, 116, 250);
padding: 10px;
border-radius: 5px;
}
/* 행 기준 위치 :
열 기준 위치 : */
.box1{ grid-row: 2; grid-column: 2;}
.box2{ grid-row: 1; grid-column: 3;}
.box3{ grid-row: 1; grid-column: 1;}
.wrapper div{
background-color: rgb(249, 226, 255);
border: 2px solid rgb(201, 116, 250);
padding: 10px;
border-radius: 5px;
}
<h3>플렉스 박스 예제</h3>
<div class="flex-container">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
</div>
/*
플렉스 박스 예제style
*/
.flex-container{
/* 기본적용 (display: flex) */
display: flex;
background-color: lightgray;
/* 요소 배치 방향 지정(flex-direction)
row, row-reverse, column, column-reverse */
/* flex-direction: row; */
/* 요소 감싸기(자동으로 줄바꿈) (flex-wrap) */
/* flex-wrap: wrap; */
/* 요소 정렬 (justify-content) */
flex-direction: row;
justify-content: center;
}
.flex-item{
background-color: bisque;
border: 1px solid red;
/* 요소 감싸기(줄바꿈) */
/* width: 300px; */
/* 요소 정렬 */
width: 50px;
height: 50px;
}
'Java > UI구현' 카테고리의 다른 글
2023.03.28 타입, 연산자, 조건문 (0) | 2023.03.28 |
---|---|
2023.03.27 자바스크립트 시작 (0) | 2023.03.27 |
2023.03.21 (0) | 2023.03.21 |
윈도우에서 자주 사용되는 단축키 (0) | 2023.03.21 |
2023.03.20 (0) | 2023.03.21 |