[英]::before pseudo element's transition is not happening
I am Krishna I am targeting .nav-item
that when someone hover over it, its ::before
pseudo element will change its box-shadow.我是 Krishna 我的目标是
.nav-item
,当有人 hover 在它上面时,它的::before
伪元素将改变它的框阴影。 But for some reason, it is not happening.但由于某种原因,它没有发生。 Pls tell where I am going wrong.
请告诉我哪里出错了。
code:代码:
.html: .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 href = "https://fonts.googleapis.com/icon?family=Material+Icons" rel = "stylesheet">
<link rel="stylesheet" href="beautiful-nav-1-style.css">
<title>Document</title>
</head>
<body>
<header>
<nav>
<img src="Images/logo-angular.svg" alt="logo" id='nav-logo'>
<ul class="nav-bar">
<li class="nav-item" id="item1">
<a href="#" class='nav-item-a'>
<img src="Images/home_black_24dp.svg" alt="">
<span class='nav-text'>Home</span>
</a>
</li>
<li class="nav-item" id="item2">
<a href="#" class='nav-item-a'>
<span>
<img src="Images/group_black_24dp.svg" alt="">
</span>
<span class='nav-text'>About</span>
</a>
</li>
<li class="nav-item" id="item3">
<a href="#" class='nav-item-a'>
<img src="Images/alternate_email_black_24dp.svg" alt="">
<span class='nav-text'>Contact Us</span>
</a>
</li>
<li class="nav-item" id="item4">
<a href="#" class='nav-item-a'>
<img src="Images/shopping_cart_black_24dp.svg" alt="">
<span class='nav-text'>Buy</span>
</a>
</li>
</ul>
<div class="search-box" id="nav-search">
<input type="text" value='Search website'>
</div>
</nav>
</header>
</body>
</html>
.css: .css:
* {
margin: 0px;
padding: 0px;
box-sizing: border-box;
}
body {
background-color: rgb(19, 14, 14);
}
nav {
display: flex;
height: 60px;
width: 90%;
background-color: white;
margin: 50px auto;
justify-content: space-between;
align-items: center;
}
#nav-logo {
width: 55px;
padding-left: 10px;
}
.nav-bar {
display: flex;
width: 40%;
justify-content: space-between;
}
.nav-item {
list-style: none;
}
.nav-item a{
display: flex;
justify-content: space-between;
align-items: center;
flex-direction: column;
padding-top: 5px;
cursor: pointer;
height: 80px;
transition: 500ms;
text-decoration: none;
color: black;
font-family: cursive;
font-weight: bold;
width: 50px;
}
.nav-text {
opacity: 0;
transition: 500ms;
}
.nav-item img {
width: 50px;
transition: 500ms;
border: 3px solid rgb(19, 14, 14);
border-radius: 50%;
}
ul .nav-item::before {
content: '';
position: relative;
display: block;
top: 20px;
left: -18px;
height: 20px;
width: 20px;
background: red;
border-top-right-radius: 100%;
box-shadow: 5px -10px rgb(19, 14, 14, 0);
transition-duration: 500ms;
transition-property: all;
}
.nav-item:hover .nav-item-a{
transform: translateY(-30px);
}
.nav-item:hover .nav-item-a img{
background-color: orangered;
}
.nav-item:hover .nav-text{
opacity: 1;
}
.nav-item:hover .nav-item::before{
box-shadow: 5px -10px rgb(19, 14, 14, 1);
}
#nav-search input {
width: 100px;
margin-right: 20px;
}
The following code is incorrect:以下代码不正确:
.nav-item:hover .nav-item::before{
box-shadow: 5px -10px rgb(19, 14, 14, 1);
}
The following code should be used instead:应改用以下代码:
.nav-item:hover::before{
box-shadow: 5px -10px rgb(19, 14, 14, 1);
}
Try this code试试这个代码
* { margin: 0px; padding: 0px; box-sizing: border-box; } body { background-color: rgb(19, 14, 14); } nav { display: flex; height: 60px; width: 90%; background-color: white; margin: 50px auto; justify-content: space-between; align-items: center; } #nav-logo { width: 55px; padding-left: 10px; }.nav-bar { display: flex; width: 40%; justify-content: space-between; }.nav-item { list-style: none; }.nav-item a { display: flex; justify-content: space-between; align-items: center; flex-direction: column; padding-top: 5px; cursor: pointer; height: 80px; transition: 500ms; text-decoration: none; color: black; font-family: cursive; font-weight: bold; width: 50px; }.nav-text { opacity: 0; transition: 500ms; }.nav-item img { width: 50px; transition: 500ms; border: 3px solid rgb(19, 14, 14); border-radius: 50%; }.nav-item::before { content: ""; position: relative; display: block; top: 20px; left: -18px; height: 20px; width: 20px; background: red; border-top-right-radius: 100%; transition-duration: 500ms; transition-property: all; }.nav-item:hover::before { box-shadow: 5px -10px rgb(19, 14, 14, 1); }.nav-item:hover.nav-item-a { transform: translateY(-30px); }.nav-item:hover.nav-item-a img { background-color: orangered; }.nav-item:hover.nav-text { opacity: 1; }.nav-item:hover.nav-item::before { box-shadow: 5px -10px rgb(19, 14, 14, 1); } #nav-search input { width: 100px; margin-right: 20px; }
<header> <nav> <img src="Images/logo-angular.svg" alt="logo" id="nav-logo" /> <ul class="nav-bar"> <li class="nav-item" id="item1"> <a href="#" class="nav-item-a"> <img src="Images/home_black_24dp.svg" alt="" /> <span class="nav-text">Home</span> </a> </li> <li class="nav-item" id="item2"> <a href="#" class="nav-item-a"> <span> <img src="Images/group_black_24dp.svg" alt="" /> </span> <span class="nav-text">About</span> </a> </li> <li class="nav-item" id="item3"> <a href="#" class="nav-item-a"> <img src="Images/alternate_email_black_24dp.svg" alt="" /> <span class="nav-text">Contact Us</span> </a> </li> <li class="nav-item" id="item4"> <a href="#" class="nav-item-a"> <img src="Images/shopping_cart_black_24dp.svg" alt="" /> <span class="nav-text">Buy</span> </a> </li> </ul> <div class="search-box" id="nav-search"> <input type="text" value="Search website" /> </div> </nav> </header>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.