如何在我的文本上方创建一条与文本长度相匹配的悬停线



当我将鼠标悬停在文本上方时,我想制作一条悬停线。然而,我希望悬停线的长度与我的每条文本的长度完全相同。如果你想知道,我想把这个效果放在HTML的导航部分。

我的HTML(如果你需要的话(

<!DOCTYPE html>
<html>
<head>
<link href="https://fonts.googleapis.com/css?family=Satisfy|Tajawal&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.5.0/css/all.css" integrity="sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU" crossorigin="anonymous">
<script src="myscripts.js">
</script>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="script.js"></script>
<link rel="stylesheet" type="text/css" href="css/styles.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js" type="text/javascript"></script>
<script type="script/script.js">
</script>
<title>Felicity Hayes Official Website</title>
</head>
<body>
<h1>Felicity Hayes</h1>
<!--- Navigation -->
<div class="navigation">
<nav>
<ul>
<li><a href="#">Art of Gifting</a></li>
<li><a href="#">Fashion</a></li>
<li><a href="#">Fragrances</a></li>
<li><a href="#">Bridal</a></li>
<li><a href="#">The House</a></li>
<li><a href="#">Services</a></li>
</ul>
</nav>
</div>
<div class="row">
<div class="column">
<img src="img/bag3.jpg">
<img src="img/bag2.jpg">
<img src="img/bag1.jpg">
<img src="img/bag4.jpg">
<img src="img/bag5.jpg">
</div>
</div>
<div class="textbox-1">
<p> CAROLINA HERRERA NEW YORK <br> RESORT 2020 </br> </p>
<button> Discover Now </button>
</div>
<div class="textbox-2">
<p> CAROLINA HERRERA NEW YORK <br> BAD BOY </br> </p>
<button> Discover Now </button>
</div>
<div class="textbox-3">
<p> CH CAROLINA HERRERA <br> RESORT </br> </p>
<button> Discover More </button>
</div>
<div class= "white-border">
<p> 212 CAROLINA HERRERA <br> 212 VIP </br> </p>
<button> Discover More </button>
<div class="row">
<div class="column">
<img src="img/girl1.jpg">
<img src="img/perfume1.jpg">
<img src="img/perfume2.jpg">
<div class="navButton" id="previous">&#10094;</div>
<div class="navButton" id="next">&#10095;</div>
</body>
<footer>
<button> Sign up to get updates </button>
<a class="facebook" href="#"><i class="fab fa-facebook-f"></i></a>
<a class="instagram" href="#"><i class="fab fa-instagram"></i></a>
<a class="pinterest" href="#"><i class="fab fa-pinterest"></i></a>
<a class="twitter" href="#"><i class="fab fa-twitter"></i></a>
<a class="youtube" href="#"><i class="fab fa-youtube"></i></a>
</footer>
</html>

我的CSS:

h1 {
font-family: 'Satisfy', cursive;
font-size: 70px;
text-align: center;
}
.navigation ul{
font-family: 'Tajawal', sans-serif;
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
text-align: center;
}
.navigation li{
display: inline-block;
float: left;
padding: 40px 50px;
text-align: center;
margin-left: 70px;
padding-top: 25px;
}
.navigation a {
color: #444;
text-decoration: none;
text-transform: uppercase;
font-size: 14px;
}
.navigation a:hover{
color: pink;
}
.navigation a::before {
content: '';
display: block;
height: 5px;
width: 100%;
background-color: pink;
position: absolute;
top: 200px;
width: 0%;
transition: all ease-in-out 250ms;
}
.navigation a:hover::before{
width: 5%;
}

.navigation a:hover:before{
content:''; /* This Is Required */
top:0%;
left:0%;
background: #fff; /* Change As Your Needs */
width: 5%;
height:5px;
}

尝试使用以下代码更新CSS

.navigation a {
position: relative;  /* Newly added */
color: #444;
text-decoration: none;
text-transform: uppercase;
font-size: 14px;
}
.navigation a::before {
content: '';
display: block;
height: 5px;
background-color: pink;
position: absolute;
top: -10px;        /* Newly added */
width: 0%;
transition: all ease-in-out 250ms;
}
navigation a:hover::before {
width: 100%;      /* Newly added */
}

从css中删除after。navigation a并尝试在悬停中执行:

.navigation a:hover{
color: pink;
padding-top: 15px;
border-top: 5px solid pink;
}

试试这个解决方案,

我刚刚将position:relative设置为锚定标签

.navigation a{
position:relative;
}

.navigation a::before{
top: -15px;
}
.navigation a:hover::before{
width: 100%;
}

h1 {
font-family: 'Satisfy', cursive;
font-size: 70px;
text-align: center;
}
.navigation ul{
font-family: 'Tajawal', sans-serif;
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
text-align: center;
}
.navigation li{
display: inline-block;
float: left;
padding: 40px 50px;
text-align: center;
margin-left: 70px;
padding-top: 25px;
}
.navigation a {
color: #444;
text-decoration: none;
text-transform: uppercase;
font-size: 14px;
position: relative;
}
.navigation a:hover{
color: pink;
}
.navigation a::before {
content: '';
display: block;
height: 5px;
width: 100%;
background-color: pink;
position: absolute;
top: -15px;
width: 0%;
transition: all ease-in-out 250ms;
}
.navigation a:hover::before{
width: 100%;
}
<!DOCTYPE html>
<html>
<head>
<link href="https://fonts.googleapis.com/css?family=Satisfy|Tajawal&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.5.0/css/all.css" integrity="sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU" crossorigin="anonymous">
<script src="myscripts.js">
</script>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="script.js"></script>
<link rel="stylesheet" type="text/css" href="css/styles.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js" type="text/javascript"></script>
<script type="script/script.js">
</script>
<title>Felicity Hayes Official Website</title>
</head>
<body>
<h1>Felicity Hayes</h1>
<!--- Navigation -->
<div class="navigation">
<nav>
<ul>
<li><a href="#">Art of Gifting</a></li>
<li><a href="#">Fashion</a></li>
<li><a href="#">Fragrances</a></li>
<li><a href="#">Bridal</a></li>
<li><a href="#">The House</a></li>
<li><a href="#">Services</a></li>
</ul>
</nav>
</div>
<div class="row">
<div class="column">
<img src="img/bag3.jpg">
<img src="img/bag2.jpg">
<img src="img/bag1.jpg">
<img src="img/bag4.jpg">
<img src="img/bag5.jpg">
</div>
</div>
<div class="textbox-1">
<p> CAROLINA HERRERA NEW YORK <br> RESORT 2020 </br> </p>
<button> Discover Now </button>
</div>
<div class="textbox-2">
<p> CAROLINA HERRERA NEW YORK <br> BAD BOY </br> </p>
<button> Discover Now </button>
</div>
<div class="textbox-3">
<p> CH CAROLINA HERRERA <br> RESORT </br> </p>
<button> Discover More </button>
</div>
<div class= "white-border">
<p> 212 CAROLINA HERRERA <br> 212 VIP </br> </p>
<button> Discover More </button>
<div class="row">
<div class="column">
<img src="img/girl1.jpg">
<img src="img/perfume1.jpg">
<img src="img/perfume2.jpg">
<div class="navButton" id="previous">&#10094;</div>
<div class="navButton" id="next">&#10095;</div>
</body>
<footer>
<button> Sign up to get updates </button>
<a class="facebook" href="#"><i class="fab fa-facebook-f"></i></a>
<a class="instagram" href="#"><i class="fab fa-instagram"></i></a>
<a class="pinterest" href="#"><i class="fab fa-pinterest"></i></a>
<a class="twitter" href="#"><i class="fab fa-twitter"></i></a>
<a class="youtube" href="#"><i class="fab fa-youtube"></i></a>
</footer>
</html>

最新更新