유니크샤인 2025. 3. 14. 20:07

Figma 화면

https://www.figma.com/design/sPzjQPTsjBC0hBjOJW9WEw/UI%2FUX-%EB%B0%98%EC%9D%91%ED%98%95-%EC%9B%B9%EB%94%94%EC%9E%90%EC%9D%B8-%26-%EC%BD%94%EB%94%A9?node-id=71-3&p=f&t=ycYl0VK10Spsb5KR-0

 

Figma

Created with Figma

www.figma.com

피그마의 단위는 %를 제외한 나머지는 전부 px이다.

피그마에서 로고 만들 때 텍스트랑 프레임을 따로 생성한다.

→ 로고 클릭 시 보통 메인페이지로 이동, 로고의 크기는 다양하다. → 로고 영역 클릭 vs 로고만 클릭

대한은행 텍스트를 frame selection을 이용해 프레임으로 전환하고 중앙으로 옮긴다.

frame selection: 선택한 객체를 프레임으로 전환한다.

 

준비해야 될 폴더와 파일

b-1/js

b-1/js/script.js

b-1/images

b-1/css

b-1/css/style.css

b-1/index.html

 

<!DOCTYPE html> : html 문서의 시작, 문서의 종류는 HTML

<태그명 속성명=””></태그명>

ex) <html lang="ko"></html>

<html lang="ko"> : html 태그의 속성, lang(언어)는 ko

<meta charset="UTF-8" /> : 문자 인코딩

<meta name="viewport" content="width=device-width, initial-scale=1.0" /> : 반응형에 대한 정보, 화면크기조정에 대응

<title>B-1 유형 레이아웃</title> : 문서의 제목

<body></body> : 실제로 화면에 나오는 부분

</html> : html 문서의 끝

화면에 보여주고 싶은 내용을 태그로 감싼다.

header 태그는 관례상 클래스네임을 header로 적어준다.

 

VScode 복사 기능

커서 끝에 ctrl+c, ctrl+v : 다음 줄에 복사된다.

alt+ shift + 방향키 : 아래를 누르면 아래로 복사, 방향키 위로 누르면 위로 복사된다. (객체를 드래그 해서 복사하는 것도 가능)

ctrl + 방향키: 위아래로 스크롤하듯이 움직일 수 있다.

 

javascript는 head 태그 안에 연결한다. (script 태그 이용)

 

CSS (스타일시트) 종류

  • 인라인 스타일 : 태그 안에 style을 적용할 수 있다. 우선 순위가 높다.
  • 내부 스타일시트 : head 태그에 style 태그를 이용한다.
  • 외부 스타일시트 : head 태그 안에 link 태그 이용해 연결한다.

html 화면

HTML 코드

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>B-1 유형 레이아웃</title>
    <link rel="stylesheet" href="css/style.css" />
    <script src="js/script.js"></script>
  </head>
  <body>
    <div class="wrap">
      <header class="header">
        <div class="inner">
          <a href="#" class="logo">
            <span>대한은행</span>
          </a>
          <nav class="menu">
            <div class="submenu-bg"></div>
            <ul class="navi">
              <li>
                <a href="#">개인</a>
                <ul class="submenu">
                  <li><a href="#">조회</a></li>
                  <li><a href="#">이체</a></li>
                  <li><a href="#">공과금</a></li>
                  <li><a href="#">예금/신탁</a></li>
                </ul>
              </li>
              <li>
                <a href="#">기업</a>
                <ul class="submenu">
                  <li><a href="#">조회</a></li>
                  <li><a href="#">이체</a></li>
                  <li><a href="#">전자결제</a></li>
                  <li><a href="#">수표/어음</a></li>
                </ul>
              </li>
              <li>
                <a href="#">금융상품</a>
                <ul class="submenu">
                  <li><a href="#">저축상품</a></li>
                  <li><a href="#">대출상품</a></li>
                  <li><a href="#">투자상품</a></li>
                </ul>
              </li>
              <li>
                <a href="#">카드</a>
                <ul class="submenu">
                  <li><a href="#">카드정보</a></li>
                  <li><a href="#">카드신청</a></li>
                  <li><a href="#">이용내역조회</a></li>
                </ul>
              </li>
            </ul>
          </nav>
        </div>
      </header>
    </div>
  </body>
</html>

CSS 코드

/* 기본 스타일 초기화 */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
html,
body {
  font-size: 16px;
  color: #333;
  background-color: #fff;
}
a {
  display: block;
  text-decoration: none;
  color: #333;
}
ul,
li {
  list-style: none;
}
img {
  border: 0;
  vertical-align: middle;
}

.wrap {
  width: 100%;
  height: 700px;
}
.inner {
  width: 1200px;
  margin: 0 auto;
  background-color: #fff;
}

.header {
  position: relative;
  width: 100%;
  height: 100px;
  background-color: #eee;
}
.header .inner {
  position: relative;
  height: 100%;
  display: flex;
  align-items: stretch;
}
.logo {
  position: relative;
  background-color: #b9c4d5;
  flex: 1;
  display: flex;
  justify-content: center;
  align-items: center;
}
.logo span {
  display: block;
  width: 200px;
  /* height: 40px; */
  background-color: #0066ff;
  text-align: center;
  line-height: 40px;
  color: #fff;
  font-size: 24px;
  font-weight: bold;
}
.menu {
  position: relative;
  background-color: #bcd7ff;
  flex: 4;
}

box-sizing: border-box; : 테두리 두께도 너비 높이에 포함

align-items: stretch; : 따로 값을 설정하지 않아도 기본값으로, 위아래로 다 펼쳐진다.

align-items: center; : 수직적으로 중앙에 배치된다. (세로 축 기준)

justify-content: center; 가로 기준으로 중앙에 배치 (가로 축 기준)

 

https://codepen.io/qikddukq-the-flexboxer/pen/dPyZEWz

 

B-2 header, logo, menu

...

codepen.io

flex playground

https://codepen.io/enxaneta/full/adLPwv/

 

Flexbox playground

...

codepen.io