스타벅스 웹사이트

[스타벅스 웹사이트] 헤더 메뉴

mikrw 2023. 1. 19. 17:53

common

img block 전환

img {
  display: block;
}

img tag로 불러온 이미지 밑에 빈 영역 존재

img tag는 인라인 요소이고, 인라인 요소(글자)는 baseline 밑으로 추가 공간이 존재함

따라서 빈 영역을 없애기 위해서는 img tag를 블록 요소로 변경해주어야함(display:block)

 

a tag 밑줄 제거

a {
  text-decoration: none;
}

수직 / 수평 정렬(가운데 정렬)

widht: 100px;
height: 100px;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;

width나 height 값이 존재하는 요소에 

position: absolute로 배치 적용(부모에 position: relative 확인)

top,bottom(수직), left,right(수평): 0과 margin: auto 적용


header menu

 

menu 정렬 flex

header .sub-menu ul.menu {
  display: flex;
}

 

menu bar

header .sub-menu ul.menu li::before {
  content: "";
  width: 1px;
  height: 12px;
  background-color: #e5e5e5;
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
}

li::before에 영역을 잡고, 정렬 후 표현

header .sub-menu ul.menu li:first-child:before {
  display: none;
}

첫번째 li에서는 display:none으로 제거


검색창

        <div class="search">
          <input type="text">
          <div class="material-icons">search</div>
        </div>

 

input focus 시에 outline 생기는 현상 없애기

outline: none;

 

검색 아이콘 클릭 시에 input focus 주기

const searchEl = document.querySelector('.search');
const searchInputEl = searchEl.querySelector('input');

searchEl.addEventListener('click', function(){
  searchInputEl.focus();
});

 

focus, blur에 따른 input 효과 주기

searchInputEl.addEventListener('focus', function(){
  searchEl.classList.add('focused');
  searchInputEl.setAttribute('placeholder', '통합검색');
});

searchInputEl.addEventListener('blur', function(){
  searchEl.classList.remove('focused');
  searchInputEl.setAttribute('placeholder', '');
});