Effet de menu déroulant CSS3 simple avec effet de suivi souligné
Mar 20, 2017 am 11:44 AMBref tutoriel
Il s'agit d'un effet de menu déroulant avec un effet de soulignement suivant réalisé en CSS3 pur. Le menu déroulant utilise la transformation et la transition CSS3 pour créer des effets de suivi de soulignement et des effets de menu déroulant.
Utilisation
Structure HTML
Ce menu déroulant utilise l'élément <nav>
<nav> <ul id="main"> <li>主页</li> <li>关于我们</li> <li>项目分类 <ul class="drop"> <p> <li>scss</li> <li>jquery</li> <li>html</li> </p> </ul> </li> <li>联系我们</li> <p id="marker"></p> </ul> </nav>
Style CSS
L'ensemble du menu ul#mian est positionné en utilisant le positionnement relatif. display est affiché sous la forme d'un élément de niveau bloc en ligne. Les éléments de menu sont dimensionnés à l'aide du remplissage et la largeur minimale min-width est définie sur 120 pixels.
#main { position: relative; list-style: none; background: #6BBE92; font-weight: 400; font-size: 0; text-transform: uppercase; display: inline-block; padding: 0; margin: 50px auto; } #main li { font-size: 0.8rem; display: inline-block; position: relative; padding: 15px 20px; cursor: pointer; z-index: 5; min-width: 120px; } li { margin: 0; }
Dans la structure HTML, ul.drop est le composant du menu déroulant. Sa méthode de positionnement utilise le positionnement absolu. L'élément p à l'intérieur utilise la fonction de translation pour se déplacer de -100 % sur l'axe Y afin de le masquer (overflow : Hidden est utilisé sur .drop).
.drop { overflow: hidden; list-style: none; position: absolute; padding: 0; width: 100%; left: 0; top: 48px; } .drop p { -webkit-transform: translate(0, -100%); -moz-transform: translate(0, -100%); -ms-transform: translate(0, -100%); transform: translate(0, -100%); -webkit-transition: all 0.5s 0.1s; -moz-transition: all 0.5s 0.1s; -ms-transition: all 0.5s 0.1s; transition: all 0.5s 0.1s; position: relative; } .drop li { display: block; padding: 0; width: 100%; background: #3E8760 !important; }
#marker est un élément de soulignement. Il utilise également le positionnement absolu. Et définissez un effet de transition d'animation de 0,35 seconde pour toutes les animations.
#marker { height: 6px; background: #3E8760 !important; position: absolute; bottom: 0; width: 120px; z-index: 2; -webkit-transition: all 0.35s; -moz-transition: all 0.35s; -ms-transition: all 0.35s; transition: all 0.35s; }
Lorsque la souris glisse sur l'élément de menu #main li element, utilisez nth-child pour déterminer sur quel élément de menu la souris glisse actuellement. Remettez ensuite la position de l'axe Y du sous-menu dans l'élément de menu à 0, affichez le menu déroulant et définissez la valeur de mouvement dans la direction X de la fonction de traduction pour déplacer le soulignement en fonction des différents éléments de menu.
#main li:nth-child(1):hover ul p { -webkit-transform: translate(0, 0); -moz-transform: translate(0, 0); -ms-transform: translate(0, 0); transform: translate(0, 0); } #main li:nth-child(1):hover ~ #marker { -webkit-transform: translate(0px, 0); -moz-transform: translate(0px, 0); -ms-transform: translate(0px, 0); transform: translate(0px, 0); } #main li:nth-child(2):hover ul p { -webkit-transform: translate(0, 0); -moz-transform: translate(0, 0); -ms-transform: translate(0, 0); transform: translate(0, 0); } #main li:nth-child(2):hover ~ #marker { -webkit-transform: translate(120px, 0); -moz-transform: translate(120px, 0); -ms-transform: translate(120px, 0); transform: translate(120px, 0); } #main li:nth-child(3):hover ul p { -webkit-transform: translate(0, 0); -moz-transform: translate(0, 0); -ms-transform: translate(0, 0); transform: translate(0, 0); } #main li:nth-child(3):hover ~ #marker { -webkit-transform: translate(240px, 0); -moz-transform: translate(240px, 0); -ms-transform: translate(240px, 0); transform: translate(240px, 0); } #main li:nth-child(4):hover ul p { -webkit-transform: translate(0, 0); -moz-transform: translate(0, 0); -ms-transform: translate(0, 0); transform: translate(0, 0); } #main li:nth-child(4):hover ~ #marker { -webkit-transform: translate(360px, 0); -moz-transform: translate(360px, 0); -ms-transform: translate(360px, 0); transform: translate(360px, 0); }
Ce qui précède est le contenu du simple effet de menu déroulant CSS3 avec effet de soulignement suivant. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn. )!
Articles connexes :
Introduction à la méthode simple de création d'un menu déroulant CSS

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment obtenir un effet de vague avec du CSS3 pur ? (exemple de code)

Comment créer un menu déroulant dans le tableau WPS

Comment ajouter des bordures de page artistiques dans Microsoft Word

Comment imprimer un document Word sans commentaires

Utilisez habilement CSS pour réaliser divers boutons de forme étrange (avec code)

Comment masquer des éléments en CSS sans prendre de place

5 façons (et correctifs) de redimensionner votre écran pour surveiller sous Windows 11

Comment implémenter des bordures en dentelle en CSS3
