J'essaie de créer une animation de survol avec une ligne de soulignement apparaissant lorsque la souris est dessus.
que puis-je ajouter pour y parvenir? J'ai essayé les pré-fabriqués mais cela n'a pas fonctionné. il montrait une ligne apparaissant mais pas sous le texte de la barre de navigation mais sous le site Web lui-même (en bas de l'écran).
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Mob-Mob</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<nav>
<ul>
<a href=""><img src="img/logo.png" alt="" style="width: 139px;" id="logo"></a>
<li style="float: right;" class="hover-nav"><a href="">áááá¢áá¥á¢á</a></li>
<li style="float: right;"><a href="">á©áááá¡ á¨áá¡áá®áá</a></li>
<li style="float: right;"><a href="">á¥ááá¡ááá</a></li>
</ul>
</nav>
</body>
</html>html,
body {
margin: 0;
padding: 0;
background-color: grey;
}
ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
height: 100px;
}
li {
padding: 40px 16px;
display: table-cell;
text-align: center;
}
li a {
display: block;
color: white;
text-align: center;
text-decoration: none;
font-size: 17px;
letter-spacing: 2.5px;
}
li a:hover {
-moz-transition: all .3s ease-in-out;
-webkit-transition: all .3s ease-in-out;
-ms-transition: all .3s ease-in-out;
-o-transition: all .3s ease-in-out;
transition: all .3s ease-in-out;
}
.hover-nav {
background-color: tomato;
}
#logo {
margin-left: 30px;
margin-top: 25px;
}4 Réponses :
Ajoutez text-decoration:underline à votre li:hover code comme ceci ...
li a:hover {
text-decoration:underline;
}
Vous devez appliquer la transition à l'élément, pas à son état de survol. Avec la transition vous dites à l'élément comment se comporter si quelque chose change. Dans ce cas, tous les styles (qui sont sensibles à une transition) pendant une période de 0,3 seconde avec une courbe de vitesse d'entrée et de sortie.
Utilisez ensuite le sélecteur :hover pour indiquer les modifications à apporter. Dans ce cas, changez donc la couleur d'arrière-plan et ajoutez un soulignement au texte.
Évitez également d'utiliser des styles en ligne lorsque cela est possible.
<nav>
<ul>
<li><a href="">áááá¢áá¥á¢á</a></li>
<li><a href="">á©áááá¡ á¨áá¡áá®áá</a></li>
<li><a href="">á¥ááá¡ááá</a></li>
</ul>
</nav>html, body {
margin: 0;
padding: 0;
background-color: grey;
}
ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
height: 100px;
}
li {
text-align: center;
float: right;
}
li a {
display: block;
color: white;
padding: 40px 16px;
text-decoration: none;
font-size: 17px;
letter-spacing: 2.5px;
-moz-transition: all .3s ease-in-out;
-webkit-transition: all .3s ease-in-out;
-ms-transition: all .3s ease-in-out;
-o-transition: all .3s ease-in-out;
transition: all .3s ease-in-out;
box-sizing: border-box;
height: 100px;
}
li a:hover {
background-color: tomato;
border-bottom: 1px solid white;
} Si vous aviez l'intention d'appliquer un soulignement au bas de la boîte au lieu du texte, vous pouvez utiliser border-bottom et assurez-vous d'utiliser box-sizing: border box afin que votre élément conserve la même taille lorsque la bordure est ajoutée.
<nav>
<ul>
<li><a href="">áááá¢áá¥á¢á</a></li>
<li><a href="">á©áááá¡ á¨áá¡áá®áá</a></li>
<li><a href="">á¥ááá¡ááá</a></li>
</ul>
</nav>html, body {
margin: 0;
padding: 0;
background-color: grey;
}
ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
height: 100px;
}
li {
text-align: center;
float: right;
}
li a {
display: block;
color: white;
padding: 40px 16px;
text-decoration: none;
font-size: 17px;
letter-spacing: 2.5px;
-moz-transition: all .3s ease-in-out;
-webkit-transition: all .3s ease-in-out;
-ms-transition: all .3s ease-in-out;
-o-transition: all .3s ease-in-out;
transition: all .3s ease-in-out;
}
li a:hover {
background-color: tomato;
text-decoration: underline;
}Si cette réponse fonctionne pour vous, veuillez la marquer comme acceptée et éventuellement la voter.
Code HTML non valide, vous avez ajouté la section <a> dans <ul> sans la <li>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Mob-Mob</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<nav>
<ul>
<li><a href=""><img src="https://dummyimage.com/100x100/52d41e/fff&text=Logo" alt="" style="width:100%;" id="logo"></a></li>
<li class="hover-nav"><a href="">áááá¢áá¥á¢á</a></li>
<li><a href="">á©áááá¡ á¨áá¡áá®áá</a></li>
<li><a href="">á¥ááá¡ááá</a></li>
</ul>
</nav>
</body>
</html>changements à
html,
body {
margin: 0;
padding: 0;
background-color: grey;
}
ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
width:100%;
background-color: #333;
height: 100px;
display: flex;
align-items: center;
}
li {
width:100%;
}
li a {
display: block;
color: white;
text-align: center;
text-decoration: none;
font-size: 17px;
letter-spacing: 1.5px;
border-bottom:4px solid transparent;
height: 100px !important;
display: flex;
align-items: center;
justify-content: center;
}
li a:hover {
-moz-transition: all .3s ease-in-out;
-webkit-transition: all .3s ease-in-out;
-ms-transition: all .3s ease-in-out;
-o-transition: all .3s ease-in-out;
transition: all .3s ease-in-out;
}
li a:hover {
background-color: tomato;
border-bottom:4px solid #fff;
}Modifier en CSS:
ul {
width:100%;
display: flex;
align-items: center;
}
li {
width:100%; // remove padding and add to `li a`.
}
li a{
border-bottom:4px solid transparent;
height: 100px !important;
display: flex;
align-items: center;
justify-content: center;
}
li a:hover { // instead of .hover-nav
background-color: tomato;
border-bottom:4px solid #fff;
}
// remove #logo margin
Démo de travail
<ul> <li><a href=""><img src="img/logo.png" alt="" style="width: 139px;" id="logo"></a></li> <li style="float: right;" class="hover-nav"><a href="">áááá¢áá¥á¢á</a></li> <li style="float: right;"><a href="">á©áááá¡ á¨áá¡áá®áá</a></li> <li style="float: right;"><a href="">á¥ááá¡ááá</a></li> </ul>
<ul> <a href=""><img src="img/logo.png" alt="" style="width: 139px;" id="logo"></a> <li style="float: right;" class="hover-nav"><a href="">áááá¢áá¥á¢á</a></li> <li style="float: right;"><a href="">á©áááá¡ á¨áá¡áá®áá</a></li> <li style="float: right;"><a href="">á¥ááá¡ááá</a></li> </ul>
Essayez ce code, j'ai marqué mes modifications sur votre code css.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Mob-Mob</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<nav>
<ul>
<a href=""><img src="img/logo.png" alt="" style="width: 139px;" id="logo"></a>
<li style="float: right;"><a href="">áááá¢áá¥á¢á</a></li>
<li style="float: right;"><a href="">á©áááá¡ á¨áá¡áá®áá</a></li>
<li style="float: right;"><a href="">á¥ááá¡ááá</a></li>
</ul>
</nav>
</body>
</html>html,
body {
margin: 0;
padding: 0;
background-color: grey;
}
ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
height: 100px;
}
li {
padding: 40px 16px;
display: table-cell;
text-align: center;
}
li a {
display: block;
color: white;
text-align: center;
text-decoration: none;
font-size: 17px;
letter-spacing: 2.5px;
}
li a:hover {
-moz-transition: all .3s ease-in-out;
-webkit-transition: all .3s ease-in-out;
-ms-transition: all .3s ease-in-out;
-o-transition: all .3s ease-in-out;
transition: all .3s ease-in-out;
}
/*Edit starts here*/
li {
position:relative;
}
li::after {
content: '';
display: block;
width: 0;
position:absolute;
left:50%;
height: 2px;
background: #0077ff;
transition: cubic-bezier(.77,0,.18,1) 1s;
}
li:hover::after {
width: 80%;
left: 10%;
}
li {
transition: cubic-bezier(.77,0,.18,1) 1s;
}
li:hover {
background-color: tomato;
}
/*Edit ends here*/
#logo {
margin-left: 30px;
margin-top: 25px;
}