logo 영역 디자인
<header>
<h1 >
<a href="https://www.coupang.com/">
<img src="./assets/logo/logo.png" alt="COUPANG" />
</a>
</h1>
</header>
header
, h1
태그를 이용해 시맨틱 요소를 사용해 마크업을 할 수 있습니다.img
태그를 사용하는 경우 alt
속성은 필수입니다.section영역 디자인
<section class="discovery">
<div class="discovery__headline">
<h2 class="discovery__title">오늘의 발견</h2>
<span class="divider">|</span>
<p class="discovery__subtitle">오늘 쿠팡이 엄선한 가장 핫한 제품</p>
</div>
<ul class="discovery__list">
<li class="discovery__item"></li>
</ul>
</section>
section
영역의 경우 HTML5부터 사용시작한 시멘틱요소로, section
태그 안에 제목요소를 하나 반드시 포함해야합니다.css작업시 요소선택자를 이용한 작업은 바람직 않을 수 있기에 각각의 요소마다 클래스 요소를 삽입해 작업을 하는 것이 효율적일 수 있습니다.
가장 많이 사용되는 네이밍 컨벤션인 BEM방식을 이용해 마크업을 해보도록 하겠습니다.
B__E--M방식
- (block - Element - Modifier )의 약자
- 바깥쪽 블록 안에 포함된 element를 구분할 때
__
를 이용해 구분- 컴포넌트의 스타일을 변경 등의 경우 modifier 확장되거나 상태를 의미하는 수정자를 의미하는
--
를 이용해 구분합니다.- BEM 방식을 이용하면 추후 클래스명만 보아도 이것이 어떤 영역에 포함된 컨텐츠이고, 어떤 기능을 가지고 있는지를 알 수 있습니다.
- BEM방식에 대한 자세한 내용은 ▶[HTML]네이밍 컨벤션 BEM에서 확인할 수 있습니다.
<header class="headere">
<h1 class="brand">
<a href="https://www.coupang.com/" class="brand__link">
<img src="./assets/logo/logo.png" alt="COUPANG" class="brand__image" />
</a>
</h1>
</header>
<section class="discovery">
<div class="discovery__headline">
<h2 class="discovery__title">오늘의 발견</h2>
<span class="divider">|</span>
<p class="discovery__subtitle">오늘 쿠팡이 엄선한 가장 핫한 제품</p>
</div>
<ul class="discovery__list">
<li class="discovery__item"></li>
</ul>
</section>
class="divider"
의 경우 다른 영역에서도 사용을 할 수 있기 때문에 BEM를 이용해 클래스를 부여하지 않았습니다.
<section class="discovery">
<div class="discovery__headline">
<h2 class="discovery__title">오늘의 발견</h2>
<span class="divider" aria-hidden="true">|</span>
<p>오늘 쿠팡이 엄선한 가장 핫한 제품</p>
</div>
<ul>
<li></li>
</ul>
</section>
aria-hidden
관련 속성을 이용할 수 있습니다.svg
태그에 alt속성을 추가할 떄도 이용을 할 수 있습니다. aria-label="2개의 배너 중 1번 배너 보기"
버튼태그의 정확한 사용용도를 전달할 수도 있습니다.<em class="product__price" role="text">12,900<span class="currencyUnit">원</span></em>
과 같이 span태그로 묶어 강조를 하는 경우 스크린리더 사용자가 12,900원을 끊어읽지 않고 한번에 읽을 수 있도록 도와줍니다.a 태그 안에 a태그를 사용할 수 없습니다.