[CSS Tip] hover시 밑줄 그을 때 움찔 하는 것을 막기

아래 비디오에서 볼 수 있듯이 hover시 없던 밑줄이 생기면 높이가 늘어나면서 요소가 움찔 하고 흔들리는 경우가 생깁니다.

이런 현상을 막으려면 미리 투명 밑줄을 넣어 두면 됩니다.

코드는 아래와 같습니다.

.search-field {
  border: 0;
  border-bottom: 2px solid transparent;
  transition: border-bottom 0.3s;
}

.search-field:focus {
  border-bottom: 2px solid #bbb;
  outline: none; // 브라우저 기본 선 제거
}

box-shadow를 이용한 방법

box-shadow는 레이아웃 흐름에 영향을 주지 않기 때문에 이걸 사용해도 움찔하는 효과를 막을 수 있습니다.

다만, 밑줄이 요소의 바깥쪽에 그어지므로 선이 버튼보다 아래쪽에 있게 돼 어색합니다.

따라서 이런 식으로 inset 값을 줘야 합니다: box-shadow: inset 0 -2px 0 0 #bbb

예제 코드

아래 예제코드엔 outline을 이용하는 방법까지 검토하고 있습니다.

카테고리

17년차 풀스택 웹 개발자 Mytory입니다

웹 개발에서도 중요한 것은 개념입니다.
이 블로그에는 제가 개발하며 익힌 개념들을 정리합니다.

워드프레스를 오래 다뤄 왔고 강의도 두 편 찍었습니다.
– 인프런 “워드프레스 제대로 개발하기 어드민 편, 클라이언트 편
– 클래스101 “누구나 할 수 있는 워드프레스 홈페이지 만들기 – 기획부터 출시까지 한 방에 OK

유튜브 채널에 워드프레스 관련 팁들을 올리고 있습니다.

👉 소개 더 보기

대표글

댓글 남기기