Maison interface Web tutoriel CSS Effet de menu déroulant CSS3 simple avec effet de suivi souligné

Effet de menu déroulant CSS3 simple avec effet de suivi souligné

Mar 20, 2017 am 11:44 AM

Bref 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>

&lt;nav&gt;
  &lt;ul id=&quot;main&quot;&gt;
    &lt;li&gt;主页&lt;/li&gt;
    &lt;li&gt;关于我们&lt;/li&gt;
    &lt;li&gt;项目分类
      &lt;ul class=&quot;drop&quot;&gt;
        &lt;p&gt;
        &lt;li&gt;scss&lt;/li&gt;
        &lt;li&gt;jquery&lt;/li&gt;
        &lt;li&gt;html&lt;/li&gt;
        &lt;/p&gt;
      &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;联系我们&lt;/li&gt;
    &lt;p id=&quot;marker&quot;&gt;&lt;/p&gt;
  &lt;/ul&gt;
&lt;/nav&gt;
Copier après la connexion

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;
}
Copier après la connexion

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;
}
Copier après la connexion

#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;
}
Copier après la connexion

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);
}
Copier après la connexion

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

Déposer CSS -menu déroulant

Explication détaillée du menu déroulant CSS

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment obtenir un effet de vague avec du CSS3 pur ? (exemple de code) Comment obtenir un effet de vague avec du CSS3 pur ? (exemple de code) Jun 28, 2022 pm 01:39 PM

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 créer un menu déroulant dans le tableau WPS Mar 21, 2024 pm 01:31 PM

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

Comment ajouter des bordures de page artistiques dans Microsoft Word Comment ajouter des bordures de page artistiques dans Microsoft Word Apr 27, 2023 pm 08:25 PM

Comment ajouter des bordures de page artistiques dans Microsoft Word

Comment imprimer un document Word sans commentaires Comment imprimer un document Word sans commentaires Apr 18, 2023 pm 02:19 PM

Comment imprimer un document Word sans commentaires

Utilisez habilement CSS pour réaliser divers boutons de forme étrange (avec code) Utilisez habilement CSS pour réaliser divers boutons de forme étrange (avec code) Jul 19, 2022 am 11:28 AM

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

Comment masquer des éléments en CSS sans prendre de place Comment masquer des éléments en CSS sans prendre de place Jun 01, 2022 pm 07:15 PM

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 5 façons (et correctifs) de redimensionner votre écran pour surveiller sous Windows 11 Apr 14, 2023 pm 03:28 PM

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

Comment implémenter des bordures en dentelle en CSS3 Comment implémenter des bordures en dentelle en CSS3 Sep 16, 2022 pm 07:11 PM

Comment implémenter des bordures en dentelle en CSS3

See all articles