Naver

seung weon, seoΒ·2024λ…„ 5μ›” 31일
0

project

λͺ©λ‘ 보기
1/8
post-thumbnail

πŸ‘’ Naver

  • ν”„λ‘œμ νŠΈ 이름: Naver
  • μ‚¬μš©ν•œ μ–Έμ–΄: HTML, CSS
  • μ›Ήμ‚¬μ΄νŠΈ μœ ν˜• : Adaptive (μ μ‘ν˜•)

μ‹œλ©˜ν‹± λ§ˆν¬μ—…?

μ›Ή λ¬Έμ„œμ˜ ꡬ쑰λ₯Ό μ„€λͺ…ν•˜κ³  의미λ₯Ό λΆ€μ—¬ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ˜λŠ” HTML νƒœκ·Έμ˜ μ‚¬μš©μ„ λ§ν•©λ‹ˆλ‹€.

ex) header, nav, main, section, article, aside, footer, small λ“±..

μ‹œλ©˜ν‹± λ§ˆν¬μ—…μ˜ μž₯점

  1. 검색엔진 μ΅œμ ν™”(SEO) - μ›Ή νŽ˜μ΄μ§€ 검색 κ²°κ³Όμ—μ„œ 높은 μˆœμœ„λ₯Ό μœ μ§€ν• μˆ˜ 있게 ν•©λ‹ˆλ‹€.
  2. μ›Ή μ ‘κ·Όμ„± ν–₯상 - 슀크린 리더와 같은 보쑰 기술 μ‚¬μš©μžμ—κ²Œ νŽ˜μ΄μ§€ λ‚΄μš©μ„ λͺ…ν™•ν•˜κ²Œ μ „λ‹¬ν• μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
  3. μœ μ§€λ³΄μˆ˜ μš©μ΄μ„± - μ›Ή λ¬Έμ„œμ˜ ꡬ쑰와 μ˜λ―Έκ°€ 더 λͺ…ν™•ν•΄μ Έ μ½”λ“œλ₯Ό μ΄ν•΄ν•˜κ³  μœ μ§€λ³΄μˆ˜ν•˜λŠ”λ° μš©μ΄ν•΄μ§‘λ‹ˆλ‹€.

기타 νƒœκ·Έ 정리

strong - λ¬Έμž₯을 κ°•μ‘°ν•˜λŠ” κΈ€μ˜ 제λͺ© (ꡡ게)
em - 단어λ₯Ό κ°•μ‘°ν•˜λŠ” κΈ€μ˜ μΉ΄ν…Œκ³ λ¦¬, λΆ„λ₯˜ (이타릭체)
p - λ¬Έμž₯,단락,λ‚΄μš©μ— μ‚¬μš©ν•˜λ©° μœ μ˜λ―Έν•œ ν…μŠ€νŠΈμΌλ•Œ
span - 보톡 μ€‘μš”ν•˜μ§€ μ•Šμ€ ν…μŠ€νŠΈλ‚˜, λ””μžμΈ μš”μ†Œμ— μ‚¬μš©
form method="" - get(λ³΄μ•ˆμ— μ·¨μ•½, 데이터 λ…ΈμΆœλ˜μ–΄λ„ λ¬΄λ°©ν• λ•Œ), post(λ³΄μ•ˆμ— κ°•λ ₯, 데이터λ₯Ό μ•ˆμ „ν•˜κ²Œ 전솑해야 ν• λ•Œ)

λ§ˆν¬μ—… μˆœμ„œμ˜ μ€‘μš”ν•œ 이유?

제λͺ©, λ³Έλ¬Έ, λͺ©λ‘, 링크 λ“±μ˜ μš”μ†Œλ“€μ΄ μ˜¬λ°”λ₯Έ μˆœμ„œλ‘œ ν‘œν˜„λ˜λ©΄ 검색엔진, μŠ€ν¬λ¦°λ¦¬λ” 등이 λ¬Έμ„œλ₯Ό 읽고 ν•΄μ„ν•˜λŠ” 데 도움이 되며 더 λ‚˜μ•„κ°€ μ‹œκ° μž₯μ• μΈμ΄λ‚˜ λ‹€λ₯Έ μž₯μ• λ₯Ό 가진 μ‚¬μš©μžλ„ μ½˜ν…μΈ λ₯Ό μ΄ν•΄ν•˜κ³  μƒν˜Έ μž‘μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

클래슀 이름 정리

  1. 의미 μžˆλŠ” μ˜μ—­ κ΅¬μ„±ν• λ•Œ

    section - sc-'event' (이름 μžμ²΄κ°€ ν•΄λ‹Ή μš”μ†Œμ— λŒ€ν•œ 정보λ₯Ό 전달할 수 μžˆλ„λ‘ 넀이밍)
    group - group-'event'
    area - 'event'-area (μ˜μ—­ μž‘μ„λ•Œ, section 급이 μ•„λ‹λ•ŒλŠ” areaλΆ€ν„° μ‹œμž‘)
    wrap - 'event'-wrap (μž‘μ€ λ‹¨μœ„)
    box - 'event'-box (더 μž‘μ€ λ‹¨μœ„)

  2. 의미 μ—†λŠ” μ˜μ—­ κ΅¬μ„±ν• λ•Œ

    column-left, column-right
    col-left, col-right
    row-top, row-bottom
    inner1, inner2 (μ—°κ΄€μ„± μ—†λŠ” λ””μžμΈ λ¬ΆμŒμ— 각각 λ‹€λ₯Έ μŠ€νƒ€μΌμ„ μ£Όκ³  μ‹Άμ„λ•Œ 숫자 μ¦κ°€μ‹œμΌœμ„œ ꡬ성)
    flex (λ‹¨μˆœν•˜κ²Œ flex μš©λ„λ‘œ ν•„μš”ν• λ•Œ)

  3. 기타 클래슀 이름

    ul - 'event'-list
    li - 'event'-item
    a - link-'event'
    button - btn-'event'

Tip

<a> νƒœκ·ΈλŠ” 주둜 ν•˜μ΄νΌ 링크 생성에 μ‚¬μš©
<button> νƒœκ·ΈλŠ” μ‚¬μš©μž μƒν˜Έμž‘μš©μ„ μœ„ν•œ λ²„νŠΌ 생성에 μ‚¬μš©

WAI ARIAλž€?

μ›Ή νŽ˜μ΄μ§€μ˜ λ‚΄μš©κ³Ό 데이터가 λ°”λ€ŒλŠ” μ˜μ—­μ— μ—­ν• , 속성, μƒνƒœ 정보λ₯Ό μΆ”κ°€ν•˜μ—¬ μ›Ή 접근성을 ν–₯μƒμ‹œν‚€κΈ° μœ„ν•œ λͺ©μ μœΌλ‘œ 개발된 기술 μ„ΈνŠΈμž…λ‹ˆλ‹€.

role - μš”μ†Œμ˜ μ—­ν•  정리
aria-attributes - 보닀 λ§Žμ€ 정보λ₯Ό μ œκ³΅ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ˜λŠ” 속성
aria-states - μš”μ†Œμ˜ ν˜„μž¬ μƒνƒœ

넀이버 μ½”λ”©μ—μ„œ μ‚¬μš©ν•œ μ˜ˆμ‹œ

<ul class="tab-list" role="tablist">
	<li class="tab-item news" role="presentation"><button class="btn on" role="tab" aria-selected="true">λ‰΄μŠ€μŠ€νƒ λ“œ</button></li>
	<li class="tab-item news" role ="presentation"><button class="btn" role="tab" aria-selected="false">μ–Έλ‘ μ‚¬νŽΈμ§‘</button></li>
	<li class="tab-item sort" role="presentation"><button class="btn" role="tab" aria-selected="false">μ—”ν„°</button></li>
	<li class="tab-item sort" role="presentation"><button class="btn" role="tab" aria-selected="false">슀포츠</button></li>
	<li class="tab-item sort" role="presentation"><button class="btn" role="tab" aria-selected="false">경제</button></li>
</ul>

role="presentation" - ν•΄λ‹Ή μš”μ†Œμ˜ μ‹œκ°μ μΈ λ””μžμΈμ΄λ‚˜ λ ˆμ΄μ•„μ›ƒμ— νŠΉλ³„ν•œ 역할이 μ—†μ„λ•Œ
role="tab" - νƒ­ 메뉴
aria-selected="true or false" - νŠΉμ • μš”μ†Œμ˜ 선택여뢀 λ‚˜νƒ€λ‚Όλ•Œ

CSS 파일 ꡬ쑰/λͺ…

reset.css - κΈ°λ³Έ μŠ€νƒ€μΌ μ΄ˆκΈ°ν™”
common.css - κ³΅ν†΅μ μœΌλ‘œ μ‚¬μš©λ˜λŠ” μŠ€νƒ€μΌ μ •μ˜
main.css - λ©”μΈνŽ˜μ΄μ§€μ˜ μŠ€νƒ€μΌ μ •μ˜ (λ©”μΈνŽ˜μ΄μ§€λ§Œ)
layout.css - header와 footer의 μŠ€νƒ€μΌ μ •μ˜

IR/IS 기법

IR 기법 (Image Replacement)

μ½˜ν…μΈ λ₯Ό μ‹œκ°μ μœΌλ‘œ μˆ¨κ²¨μ•Ό ν•˜μ§€λ§Œ (주둜 background-image에 μ‚¬μš©) 슀크린 λ¦¬λ”κΈ°μ—λŠ” μ½ν˜€μ•Ό λ λ•Œ μ‚¬μš©ν• μˆ˜ μžˆλŠ” λ°©λ²•μž…λ‹ˆλ‹€.

.blind{
  position: absolute; 
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  margin: -1px;
}
  1. postion: absolute; - λ ˆμ΄μ•„μ›ƒμ— 영ν–₯ 주지 μ•ŠκΈ° μœ„ν•˜μ—¬
  2. width: 1px; height: 1px; - width, height이 0일 경우 슀크린 λ¦¬λ”κΈ°μ—μ„œ μ½μ„μˆ˜ μ—†λ‹€
  3. overflow: hidden; - λ„˜μΉ˜λŠ” λΆ€λΆ„ μˆ¨κΉ€
  4. clip: rect(0,0,0,0); - 화면에 λ³΄μ΄λŠ” μ˜μ—­ 0으둜 지정
  5. margin: -1px; - μš”μ†Œκ°€ μ°¨μ§€ν•˜λŠ” 곡간 제거

IS 기법 (Image Sprite)

μ—¬λŸ¬ 개의 μž‘μ€ 이미지λ₯Ό ν•˜λ‚˜μ˜ μ΄λ―Έμ§€λ‘œ ν•©μΉ˜λŠ” κΈ°μˆ μ„ μ˜λ―Έν•©λ‹ˆλ‹€. IS 기법을 μ‚¬μš©ν•¨μœΌλ‘œμ¨ μ›Ή νŽ˜μ΄μ§€μ˜ μ„±λŠ₯을 ν–₯μƒμ‹œν‚€κ³  λ‘œλ”© μ‹œκ°„μ„ λ‹¨μΆ•μ‹œν‚¬μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.

넀이버 μ½”λ”©μ—μ„œ μ‚¬μš©ν•œ μ˜ˆμ‹œ

.gnb .nav-item [class*="ic-"]::after,
.gnb .nav-item [class*="ic-"]::before,
.header .group-search [class*="btn-"]::after{
  background-image: url(../images/sp-bg.png);
  background-size: 434px;
  background-repeat: no-repeat;
}

μœ„μ™€ 같이 background-position 을 μ‚¬μš©ν•˜μ—¬ 각 μ΄λ―Έμ§€μ˜ μ’Œν‘œλ₯Ό μž‘μ„μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.

profile
to reach new possibilities

0개의 λŒ“κΈ€