실무에서 자주 쓰이는 레이아웃 구성 방식 3가지
시멘틱 태그 활용
의미 있는 태그 사용으로 구조 명확하게
예시: <header>, <nav>, <section>, <article>, <footer>
이미지에는 alt 속성 필수
시각장애인 사용자 대응
예시: <img src="logo.png" alt="사이트 로고">
키보드 조작 가능하도록 제작
마우스 없이도 작동 가능해야 함
예시: <button onclick="goLink()">자세히 보기</button>
ARIA 속성으로 접근성 강화
예시: <div role="dialog" aria-label="로그인창">...</div>
색상 대비 유지
명도 대비 4.5:1 이상
도구: https://webaim.org/resources/contrastchecker/
[레이아웃 구성 요약]
Flex
가로/세로 정렬에 유용, 1차원
예시: display: flex;
Grid
복잡한 카드형/갤러리 구조, 2차원
예시: display: grid;
Float
예전 방식, 이미지 감쌀 때 일부 사용
예시: float: left;
[반응형 디자인 요약]
REM 단위 사용
예시:
html { font-size: 16px; }
body { font-size: 1rem; }
유연한 넓이 구성
예시:
.wrapper { width: 100%; max-width: 1200px; margin: 0 auto; }
미디어쿼리 사용 예
@media (min-width: 768px) { body { font-size: 1.1rem; } }
[실무 팁 정리]
rem, % 단위 적극 사용 → 반응형 대응
aria-*와 role 속성 → 스크린리더 호환
모바일 퍼스트 접근 권장
충분한 글자 크기와 색상 대비 확보
CSS는 컴포넌트 단위로 모듈화해서 관리
의미 있는 태그 사용으로 구조 명확하게
예시: <header>, <nav>, <section>, <article>, <footer>
이미지에는 alt 속성 필수
시각장애인 사용자 대응
예시: <img src="logo.png" alt="사이트 로고">
키보드 조작 가능하도록 제작
마우스 없이도 작동 가능해야 함
예시: <button onclick="goLink()">자세히 보기</button>
ARIA 속성으로 접근성 강화
예시: <div role="dialog" aria-label="로그인창">...</div>
색상 대비 유지
명도 대비 4.5:1 이상
도구: https://webaim.org/resources/contrastchecker/
[레이아웃 구성 요약]
Flex
가로/세로 정렬에 유용, 1차원
예시: display: flex;
Grid
복잡한 카드형/갤러리 구조, 2차원
예시: display: grid;
Float
예전 방식, 이미지 감쌀 때 일부 사용
예시: float: left;
[반응형 디자인 요약]
REM 단위 사용
예시:
html { font-size: 16px; }
body { font-size: 1rem; }
유연한 넓이 구성
예시:
.wrapper { width: 100%; max-width: 1200px; margin: 0 auto; }
미디어쿼리 사용 예
@media (min-width: 768px) { body { font-size: 1.1rem; } }
[실무 팁 정리]
rem, % 단위 적극 사용 → 반응형 대응
aria-*와 role 속성 → 스크린리더 호환
모바일 퍼스트 접근 권장
충분한 글자 크기와 색상 대비 확보
CSS는 컴포넌트 단위로 모듈화해서 관리
게시판 목록
퍼블리싱강좌
| 번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|---|
| 208 | 부트스트랩 | 8년 전 | 2735 | ||
| 207 | AngularJS | 8년 전 | 1474 | ||
| 206 | AngularJS | 8년 전 | 1121 | ||
| 205 | AngularJS | 8년 전 | 993 | ||
| 204 | AngularJS | 8년 전 | 1395 | ||
| 203 | AngularJS | 8년 전 | 1191 | ||
| 202 | AngularJS | 8년 전 | 1505 | ||
| 201 | AngularJS | 8년 전 | 1456 | ||
| 200 | AngularJS | 8년 전 | 1433 | ||
| 199 | AngularJS | 8년 전 | 1353 | ||
| 198 | AngularJS | 8년 전 | 1237 | ||
| 197 | AngularJS | 8년 전 | 1397 | ||
| 196 | AngularJS | 8년 전 | 1055 | ||
| 195 | AngularJS | 8년 전 | 1263 | ||
| 194 | AngularJS | 8년 전 | 1273 | ||
| 193 | AngularJS | 8년 전 | 1620 | ||
| 192 | AngularJS | 8년 전 | 1366 | ||
| 191 | AngularJS | 8년 전 | 1592 | ||
| 190 | AngularJS | 8년 전 | 1561 | ||
| 189 | AngularJS | 8년 전 | 1652 | ||
| 188 | AngularJS | 8년 전 | 1409 | ||
| 187 | AngularJS | 8년 전 | 1372 | ||
| 186 | AngularJS | 8년 전 | 1418 | ||
| 185 | AngularJS | 8년 전 | 1450 | ||
| 184 | AngularJS | 8년 전 | 1488 | ||
| 183 | AngularJS | 8년 전 | 1486 | ||
| 182 | AngularJS | 8년 전 | 1012 | ||
| 181 | AngularJS | 8년 전 | 1394 | ||
| 180 | AngularJS | 8년 전 | 1283 | ||
| 179 | AngularJS | 8년 전 | 1263 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기