본문 바로가기

비개발자의 개발 일지

현장 팀장에서 수출 ERP까지 — AI와 함께 시스템을 만든 기록

시리즈 보기
php

HTML5 개인 포트폴리오 — 4페이지 구조 완전 정리

by 왕진 2026. 6. 10.
반응형

 

 

Web Development · Project

HTML5 개인 포트폴리오 사이트
4페이지 구조 완전 정리

소개·경력·학술·인적 4페이지 + 공통 CSS로 만드는 시맨틱 포트폴리오
시작 만들 사이트의 구조

이 프로젝트는 4개의 HTML 파일이 하나의 외부 CSS를 공유하는 멀티페이지 포트폴리오다. 각 페이지가 같은 헤더·내비·푸터·사이드바를 공유하면서 본문(section)만 다르다. 외부 CSS 파일 하나(mportpolio.css)만 수정하면 4개 페이지에 동시에 적용되는 구조 — "외부 CSS의 진짜 힘"을 체감할 수 있는 예제다.

파일 구성
mintro.html
소개
자기소개 + 사진
mcareer.html
경력
세미나·인턴쉽·봉사 + 갤러리
mstudy.html
학술
프로젝트·자격증·수상 + 비디오
minfo.html
인적
기본 정보 + 학력 표
mportpolio.css
공통 스타일시트
4페이지 모두가 link로 가져다 씀
사이트 시각화
홍길동 홈페이지
자기소개
본문 영역 — 페이지마다 내용만 달라진다
참조
링크
용어 핵심 키워드
<link rel>외부 CSS 파일을 모든 페이지에서 공유
<header>사이트 상단 (제목)
<nav>페이지 이동 메뉴
<section>본문 핵심 콘텐츠
<aside>사이드바 (보조 정보)
<footer>하단 (저작권 — fixed로 고정)
@media화면 너비 따라 다른 스타일
text-shadow글자 그림자
list-style-image불릿을 이미지로
<video> <source>여러 포맷 비디오 폴백 제공
opacity: 0.3로고 워터마크 효과
transform: scale이미지 호버 확대

1 모든 페이지의 공통 뼈대

4개 페이지 모두 head + header + nav + content(section + aside) + footer 구조를 공유한다. 차이는 section 안의 내용뿐이다.

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="mportpolio.css"> </head> <body> <header><h1>홍길동 홈페이지</h1></header> <nav> <span><a href="mcareer.html"> 경력 </a></span> <span><a href="mstudy.html"> 학술 </a></span> <span><a href="minfo.html"> 인적 </a></span> <span><a href="mintro.html"> 소개 </a></span> </nav> <div class="content"> <section class="section1"> <!-- 페이지마다 다른 본문 --> </section> <aside> <h3>참조링크</h3> <a href="http://www.naver.com"><img src="naver.jpg"></a> </aside> </div> <footer><h2>© 2014 Hong, GilDong</h2></footer> </body> </html>

반응형
2 공통 CSS의 핵심 (mportpolio.css)
초기화 + 공통 폰트
* { margin: 0; padding: 0; } /* 모든 요소 여백 초기화 */ header, body, footer { font-size: 14px; font-family: 나눔고딕, 굴림, 돋움, serif; width: 100%; } footer { position: fixed; /* 스크롤해도 화면 하단에 고정 */ bottom: 0; }
제목 스타일 + text-shadow
h3 { color: green; text-shadow: 4px 4px 7px green; /* x y blur color */ } h1, h2 { background-image: url(bg.jpg); background-repeat: repeat-x; /* 가로로만 반복 */ }
nav — 우측 정렬 + 호버 색 변환
nav > span > a { padding: 3px; border: 2px solid purple; float: right; /* 우측에서 시작 */ text-decoration: none; background: purple; color: white; } nav > span > a:hover { background: #ff00ff; /* 호버 시 마젠타 */ }

3 미디어쿼리 — 가로 모드 2단

화면 너비가 321px 이상이고 가로(landscape) 모드일 때만 section과 aside를 좌우로 배치한다. 모바일 세로 모드에서는 자동으로 위아래로 쌓인다.

@media only screen and (min-width: 321px) and (orientation: landscape) { section { width: 80%; float: left; } aside { width: 20%; float: right; } footer { clear: both; } }
💡 @media는 디바이스의 특성(너비·방향·해상도 등)에 따라 다른 CSS를 적용한다. orientation: landscape는 가로가 세로보다 넓을 때(가로 모드)만.

4 페이지별 차별점
mintro.html — 자기소개 + 사진 띄우기
#stu-pic { width: 6em; height: 8em; float: left; } /* 사진을 좌측에 띄워 텍스트가 옆으로 흐르게 */
mcareer.html — 갤러리 호버 확대
.semi-pic { width: 4em; height: 3em; } #pic-container { overflow: hidden; } #pic1:hover { transform: translate(150px, 50px) scale(7, 7); } /* 호버 시 7배 확대 + 위치 이동 — 줌인 효과 */
mstudy.html — 멀티 포맷 비디오
<video autoplay controls preload="metadata"> <source src="video.ogv" type="video/ogv"> <source src="video.mp4" type="video/mp4"> <source src="video.webm" type="video/webm"> 브라우저에서 비디오 파일을 지원하지 않습니다. </video>

브라우저가 위에서부터 차례로 읽어 첫 번째로 재생 가능한 포맷을 사용한다. 어떤 포맷도 지원 안 되면 안의 텍스트가 표시된다.

minfo.html — 학력 표 + 워터마크 로고
#year-table { table-layout: auto; width: 80%; } #year-table thead { background: #E4F2D0; } #logo { position: fixed; /* 스크롤해도 따라옴 */ top: 130px; left: 70px; opacity: 0.3; /* 30% 투명 — 워터마크 효과 */ }

5 이 프로젝트로 배우는 것
※ 멀티페이지 사이트의 핵심 패턴
  • 외부 CSS 한 파일 — 모든 페이지가 동일한 디자인 공유
  • HTML5 시맨틱 태그 — header / nav / section / aside / footer
  • 고정 footerposition: fixed; bottom: 0
  • 반응형 미디어쿼리 — 가로/세로 모드 분기
  • 비디오 폴백 — 여러 source 태그로 포맷 호환성
  • 호버 효과 — transform: scale로 갤러리 줌
  • 워터마크 — fixed + opacity로 배경 로고

6 자주 하는 실수
실수 증상 해결
CSS 파일명 오타 스타일이 전혀 안 먹힘 대소문자·확장자 정확히 (mportpolio.css)
nav 링크의 href 잘못 404 오류 같은 폴더라면 파일명만 (mintro.html)
footer fixed 후 본문 가림 마지막 콘텐츠가 안 보임 body에 padding-bottom: 60px
한 페이지만 CSS 수정 다른 페이지에 안 반영 외부 CSS는 자동 반영 — 캐시 새로고침 필요
video 한 포맷만 제공 일부 브라우저 재생 불가 mp4 + webm 최소 두 개 제공
전역 * {margin:0} 부작용 의도한 여백까지 사라짐 구체 셀렉터로 다시 부여

요약 핵심 한 줄 정리

HTML5 포트폴리오 사이트 핵심

멀티페이지4개의 .html이 1개의 .css 공유
시맨틱 구조header → nav → section + aside → footer
footer fixed스크롤해도 화면 하단에 고정
@media landscape가로 모드일 때만 2단 레이아웃
video + source여러 포맷 폴백 — 첫 재생 가능한 것 사용
opacity + fixed워터마크 로고 효과
scale(7) hover갤러리 이미지 줌인
text-shadow제목에 그림자 효과
list-style-image불릿을 커스텀 이미지로

Tags

#포트폴리오 #HTML5 #시맨틱태그 #외부CSS #멀티페이지 #nav #aside #footer고정 #video #미디어쿼리 #웹개발 #티스토리
▼ 티스토리 태그 입력란 복사용
포트폴리오, HTML5, 시맨틱태그, 외부CSS, 멀티페이지, nav, aside, footer고정, video, 미디어쿼리, 웹개발, 티스토리
반응형

댓글