CSS3 implémente un accordéon réactif
J'ai récemment regardé une vidéo d'un maître étranger utilisant CSS3 pour obtenir l'effet accordéon, je l'ai donc écrite après l'avoir étudiée et enregistrée sous forme de blog pour faciliter ma future révision . La structure du code est la suivante (La police utilisée est Genericons) :
Tutoriel vidéo recommandé : "Tutoriel vidéo CSS-Jade Girl Heart Sutra Edition. "
L'effet final est le suivant :
En plein écran :
Lorsque la largeur de l'écran est moins de 960px :
Jetons un coup d'œil à la structure de base de la page (index.html) :
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link rel="stylesheet" href="style.css"> </head> <body> <p class="container"> <!--标题--> <header> <h1>Follow me on social media</h1> </header> <!--手风琴部分--> <ul class="accordion"> <li class="tab"> <p class="social youtube"> <a href="#">YouTube</a> </p> <p class="content"> <h1>YouTube</h1> <p>Lorem ipsum dolor sit amet consectetur adipisicing elit.Culpa, consectetur.</p> </p> </li> <li class="tab"> <p class="social facebook"> <a href="#">Facebook</a> </p> <p class="content"> <h1>Facebook</h1> <p>Lorem ipsum dolor sit amet consectetur adipisicing elit.Culpa, consectetur.</p> </p> </li> <li class="tab"> <p class="social twitter"> <a href="#">Twitter</a> </p> <p class="content"> <h1>Twitter</h1> <p>Lorem ipsum dolor sit amet consectetur adipisicing elit.Culpa, consectetur.</p> </p> </li> <li class="tab"> <p class="social instagram"> <a href="#">Instagram</a> </p> <p class="content"> <h1>Instagram</h1> <p>Lorem ipsum dolor sit amet consectetur adipisicing elit.Culpa, consectetur.</p> </p> </li> <li class="tab"> <p class="social linkedin"> <a href="#">Linkedin</a> </p> <p class="content"> <h1>Linkedin</h1> <p>Lorem ipsum dolor sit amet consectetur adipisicing elit.Culpa, consectetur.</p> </p> </li> <li class="tab"> <p class="social github"> <a href="#">Github</a> </p> <p class="content"> <h1>Github</h1> <p>Lorem ipsum dolor sit amet consectetur adipisicing elit.Culpa, consectetur.</p> </p> </li> </ul> </p> </body> </html>
Style (style.css) :
*{ margin: 0; padding: 0; border: none; } body{ font-family: Arial, Helvetica, sans-serif; background-color: #222; color: #fff; } /*设置字体,因为后面的图标需要用到*/ @font-face { font-family: 'Genericons'; src: url('font/genericons-regular-webfont.woff') format('woff'), url('font/genericons-regular-webfont.eot') format('truetype'); } /*设置外面容器的宽度*/ .container{ width: 80%; margin: 20px auto; } header h1{ font-size: 2rem; padding: 1rem; text-align: center; } /*注意这里font-size设置为0,不然会出现非常糟糕的画面,我们后面再去单独对需要现实的文本设置字体大小 ,因为a链接不想让它显示内容*/ .accordion{ width: 100%; min-width: 800px; height: 200px; background-color: #333; list-style: none; display: block; overflow: hidden; font-size: 0; } /*对每一个li设置为inline-block,让其排列在一行,溢出隐藏,因为.tab下面的.content宽度为360,而且.tab只有在hover的时候宽度才会变成450px,那时候.content刚好显示.另外设置过渡,使其宽度增长的过程平缓*/ .tab{ width: 80px; height: 100%; display: inline-block; position: relative; margin: 0; background-color: #444; border: 1px solid #333; overflow: hidden; transition: all .5s ease .1s; } .tab:hover{ width: 450px; } .tab:hover .social a:after{ transform: translateX(-80px); } .tab:hover .social a:before{ transform: translateX(-100px); } /*设置定位为相对定位,不然.content会有部分内容被遮住*/ .tab .content{ position: relative; width: 360px; height: 100%; background-color: #fff; color: #333; margin-left: 80px; padding: 50px 0 0 15px; } .tab .content h1{ font-size: 2.5rem; margin-top: 20px; } .tab .content p{ font-size: .85rem; line-height: 1.6; } /设置为元素的宽高及字体为Genericons,不然图标无法显现,只会显示白色的空框框/ .social a:before, .social a:after{ position: absolute; width: 80px; height: 200px; display: block; text-indent: 0; padding-top: 90px; padding-left: 25px; font:normal 30px Genericons; color: #fff; transition: all .5s ease; } /*因为当我们hover上去的时候图标会更大,所以after伪类的字体及padding要重新设置,同时 要将margin-left设置为80px,这要默认情况下显示的就是before伪类的小图标*/ .social a:after{ font-size: 48px; padding-top: 80px; padding-left: 20px; margin-left: 80px; } /*Add icons*/ .youtube a:before, .youtube a:after{ content: '\f213'; } .youtube a:after{ background-color: #fc0000; } .twitter a:before, .twitter a:after{ content: '\f202'; } .twitter a:after{ background-color: #6dc5dd; } .facebook a:before, .facebook a:after{ content: '\f204'; } .facebook a:after{ background-color: #3b5998; } .linkedin a:before, .linkedin a:after{ content: '\f208'; } .linkedin a:after{ background-color: #00a9cd; } .instagram a:before, .instagram a:after{ content: '\f215'; } .instagram a:after{ background-color: #6dc993; } .github a:before, .github a:after{ content: '\f200'; } .github a:after{ background-color: #6e5494; } /*当屏幕最大宽度为960px时*/ @media(max-width:960px){ .container{ width: 70%; } /*让高度为auto*/ .accordion{ min-width: 450px; height: auto; } /*让li显示为block,这样就会依次往下排*/ .tab{ width: 100%; display: block; border-bottom: 1px solid #333; } /*这个一定要设置,因为原本的.tab:hover时宽度为450px,假如.tab的宽度有600px,在hover时就回剩余150px的空白,不是我们想要的效果*/ .tab:hover{ width: 100%; } .tab .content{ width: 85%; } /*设置对应伪类的padding值,使其大概显示在中间*/ .social a:before{ padding-top: 60px; padding-left: 25px; } .social a:after{ padding-top: 50px; padding-left: 20px; } }
Tutoriel recommandé : "Tutoriel CSS"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

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

Avec la popularité des appareils mobiles, la conception Web doit prendre en compte des facteurs tels que la résolution de l'appareil et la taille de l'écran des différents terminaux pour offrir une bonne expérience utilisateur. Lors de la mise en œuvre d'un design réactif d'un site Web, il est souvent nécessaire d'utiliser l'effet carrousel d'images pour afficher le contenu de plusieurs images dans une fenêtre visuelle limitée, et en même temps, cela peut également améliorer l'effet visuel du site Web. Cet article expliquera comment utiliser CSS pour obtenir un effet de carrousel automatique d'image réactif, et fournira des exemples de code et une analyse. Idées d'implémentation L'implémentation d'un carrousel d'images réactif peut être réalisée grâce à la mise en page flexible CSS. exister

Un didacticiel sur l'utilisation de CSS pour implémenter un menu coulissant réactif nécessite des exemples de code spécifiques. Dans la conception Web moderne, la conception réactive est devenue une compétence essentielle. Pour s'adapter à différents appareils et tailles d'écran, nous devons ajouter un menu réactif au site Web. Aujourd'hui, nous utiliserons CSS pour implémenter un menu coulissant réactif et vous fournirons des exemples de code spécifiques. Jetons d’abord un coup d’œil à la mise en œuvre. Nous allons créer une barre de navigation qui se réduit automatiquement lorsque la largeur de l'écran est inférieure à un certain seuil et s'agrandit en cliquant sur le bouton de menu.

Comment utiliser HTML, CSS et jQuery pour créer un nuage de tags réactif. Un nuage de tags est un élément Web courant utilisé pour afficher divers mots-clés ou balises. Il affiche généralement l’importance des mots-clés dans différentes tailles ou couleurs de police. Dans cet article, nous présenterons comment utiliser HTML, CSS et jQuery pour créer un nuage de tags réactif et donnerons des exemples de code spécifiques. Création de la structure HTML Tout d'abord, nous devons créer la structure de base du nuage de tags en HTML. Vous pouvez utiliser une liste non ordonnée pour représenter les balises

Comment utiliser JavaFX pour créer une interface utilisateur réactive dans Java9 Introduction : Dans le processus de développement d'applications informatiques, l'interface utilisateur (UI) est un élément très important. Une bonne interface utilisateur peut améliorer l’expérience utilisateur et rendre l’application plus attrayante. JavaFX est un framework d'interface utilisateur graphique (GUI) sur la plate-forme Java. Il fournit un riche ensemble d'outils et d'API pour créer rapidement des interfaces d'interface utilisateur interactives. En Java 9, JavaFX est devenu un JavaSE

Comment créer une mise en page de carrousel réactif à l'aide de HTML et CSS Les carrousels sont un élément courant dans la conception Web moderne. Il peut attirer l'attention de l'utilisateur, afficher plusieurs contenus ou images et basculer automatiquement. Dans cet article, nous expliquerons comment créer une mise en page carrousel réactive en utilisant HTML et CSS. Tout d’abord, nous devons créer une structure HTML de base et ajouter les styles CSS requis. Ce qui suit est une structure HTML simple : <!DOCTYPEhtml&g

Comment utiliser HTML, CSS et jQuery pour créer une barre de notification à défilement réactive Avec la popularité des appareils mobiles et l'augmentation des exigences des utilisateurs en matière d'expérience d'accès aux sites Web, la conception d'une barre de notification à défilement réactive est devenue de plus en plus importante. La conception réactive garantit que le site Web s'affiche correctement sur différents appareils et que les utilisateurs peuvent facilement visualiser le contenu des notifications. Cet article expliquera comment utiliser HTML, CSS et jQuery pour créer une barre de notification à défilement réactive et fournira des exemples de code spécifiques. Nous devons d’abord créer le HTM

Comment utiliser Layui pour implémenter la fonction de calendrier réactif 1. Introduction Dans le développement Web, la fonction de calendrier est l'une des exigences courantes. Layui est un excellent framework frontal qui fournit une multitude de composants d'interface utilisateur, y compris des composants de calendrier. Cet article expliquera comment utiliser Layui pour implémenter une fonction de calendrier réactif et donnera des exemples de code spécifiques. 2. Structure HTML Afin d'implémenter la fonction de calendrier, nous devons d'abord créer une structure HTML appropriée. Vous pouvez utiliser l'élément div comme conteneur le plus externe, puis à l'intérieur de celui-ci

En tant que framework JavaScript populaire, Vue fournit de nombreux composants et fonctions qui facilitent le développement. L'un des composants courants de l'interface utilisateur est l'accordéon (également appelé accordéon), qui permet aux utilisateurs de développer et de réduire le contenu pour économiser de l'espace. Dans la documentation Vue, nous pouvons trouver un composant de boîte pliante simple mais entièrement fonctionnel. Présentons sa méthode d'implémentation. Tout d'abord, dans le composant Vue, nous devons définir certaines données pour contrôler l'état développé de la boîte pliante. Ces données peuvent être une valeur booléenne, telle que isColla
