(웹) 밑줄치기 효과/ hover시 밑줄 쳐지는 효과 구현하기(매우 간단)

공부가싫다가도좋아 2021. 7. 30. 11:47
반응형

밑줄 효과 주기


오늘은 마우스를 가져다 댔을때 밑줄이 스르륵 생기는 효과를 구현해 보겠습니다.

position에 대한 이해도만 있다면, 혹은 슬라이드 구현을 해본적이 있다면, 

이해하기 매우 쉬울거에요 :)

 

포스팅 요약

1. 결과

2. 코드

3. 동작 원리

4. 깃허브 코드 다운


[Result]

[Code]

HTML

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="css/style.css">
  <title>Document</title>
</head>
<body>
  <div id="menual">
    <p class="main_tit">원하는 곳에 밑줄 효과 넣기</p>
    <p class="main_content">
      <span class="have_highlight first">밑줄 효과를 어디에 넣을까? 
      <strong class="highlight"> 여기에</strong>
      <br>넣읍시다.</span><br>
      
      <span class="have_highlight second">두 번째 밑줄효과는 어디에 넣을까? 
      <br><strong class="highlight">요기에</strong> 넣읍시다.</span>
  
       <br><span class="have_highlight third">세번째 밑줄효과는?
       <br><strong class="highlight">이쪽에</strong> 넣을 겁니다.</span>
    
       <br><span class="have_highlight fourth">제 블로그 
       <strong class="highlight">코드짜는 문과녀</strong> 많이 사랑해주세요.</span>
  
       <br><span class="have_highlight fifth">도움이 됐다면 
       <strong class="highlight">하트를 꾹</strong> 눌러주세요~</span>      
  </p>
  </div>
</body>
</html>

 

CSS

#menual{
  width: 100%;
  height:650px;
  padding-left: 400px;
  margin-top: 50px;
}

#menual .main_tit{
  font-size: 2em;
  padding-bottom: 30px;
}

#menual .main_content{
  font-size: 2em;
  line-height: 1.6;
  color: rgb(192,192,192);
}

.first:hover, .second:hover, .third:hover, .fourth:hover, .fifth:hover{
  color: black;
}

.highlight{
  display: inline-table; /*highlight::before과 겹치게 해줌*/
  position: relative;
  overflow: hidden;
}

.highlight::before{
  content:'';
  width: 100%;
  height: 100%;
  background: rgba(236, 98, 78);
  position: absolute;
  top: 40px;
  left: -100%;
  transition: all .35s;

}

.have_highlight:hover .highlight::before{
  left: 0;

}

#menual strong{
  color: black;
}

 


[동작원리]

 

슬라이드가 동작하는 원리와 비슷하다. 

위 사진에서 보면 원래는 아래 진분홍 박스가 있으며, overflow:hidden으로 컨텐츠를 가려준것이다.

(*위 사진은 동작 원리를 설명하기 위해 overflow:hidden값을 잠시 빼뒀다.)

 

그리고 hover시 진분홍 박스를 오른쪽으로 이동시켜, 파란 박스 영역에 들어온 부분만 표시가 되는 원리이다.

 

원리는 매우 간단하나, 아직 position:relative, position: absolute에 대한 이해도가 부족하다면,

어려울 수 있는 부분이니, 이해가 어려우신분들은 먼저 position에 대해 이해하신 후 동작을 구현해보시면 

좋을것 같습니다:)


[GitHub Link]

https://github.com/6810779s/Underline_Slide

 

GitHub - 6810779s/Underline_Slide

Contribute to 6810779s/Underline_Slide development by creating an account on GitHub.

github.com


도움이 되셨다면 하트 꾹 눌러주세요 ~

반응형