您好,登錄后才能下訂單哦!
這篇文章主要介紹了CSS3怎么實(shí)現(xiàn)響應(yīng)式手風(fēng)琴效果,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
效果如下:
全屏?xí)r:
屏幕寬度小于960px時:
下面來看一下頁面的基本結(jié)構(gòu)(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> <div class="container"> <!--標(biāo)題--> <header> <h2>Follow me on social media</h2> </header> <!--手風(fēng)琴部分--> <ul class="accordion"> <li class="tab"> <div class="social youtube"> <a href="#">YouTube</a> </div> <div class="content"> <h2>YouTube</h2> <p>Lorem ipsum dolor sit amet consectetur adipisicing elit.Culpa, consectetur.</p> </div> </li> <li class="tab"> <div class="social facebook"> <a href="#">Facebook</a> </div> <div class="content"> <h2>Facebook</h2> <p>Lorem ipsum dolor sit amet consectetur adipisicing elit.Culpa, consectetur.</p> </div> </li> <li class="tab"> <div class="social twitter"> <a href="#">Twitter</a> </div> <div class="content"> <h2>Twitter</h2> <p>Lorem ipsum dolor sit amet consectetur adipisicing elit.Culpa, consectetur.</p> </div> </li> <li class="tab"> <div class="social instagram"> <a href="#">Instagram</a> </div> <div class="content"> <h2>Instagram</h2> <p>Lorem ipsum dolor sit amet consectetur adipisicing elit.Culpa, consectetur.</p> </div> </li> <li class="tab"> <div class="social linkedin"> <a href="#">Linkedin</a> </div> <div class="content"> <h2>Linkedin</h2> <p>Lorem ipsum dolor sit amet consectetur adipisicing elit.Culpa, consectetur.</p> </div> </li> <li class="tab"> <div class="social github"> <a href="#">Github</a> </div> <div class="content"> <h2>Github</h2> <p>Lorem ipsum dolor sit amet consectetur adipisicing elit.Culpa, consectetur.</p> </div> </li> </ul> </div> </body> </html>
樣式(style.css):
*{ margin: 0; padding: 0; border: none; } body{ font-family: Arial, Helvetica, sans-serif; background-color: #222; color: #fff; } /*設(shè)置字體,因?yàn)楹竺娴膱D標(biāo)需要用到*/ @font-face { font-family: 'Genericons'; src: url('font/genericons-regular-webfont.woff') format('woff'), url('font/genericons-regular-webfont.eot') format('truetype'); } /*設(shè)置外面容器的寬度*/ .container{ width: 80%; margin: 20px auto; } header h2{ font-size: 2rem; padding: 1rem; text-align: center; } /*注意這里font-size設(shè)置為0,不然會出現(xiàn)非常糟糕的畫面,我們后面再去單獨(dú)對需要現(xiàn)實(shí)的文本設(shè)置字體大小 ,因?yàn)閍鏈接不想讓它顯示內(nèi)容*/ .accordion{ width: 100%; min-width: 800px; height: 200px; background-color: #333; list-style: none; display: block; overflow: hidden; font-size: 0; } /*對每一個li設(shè)置為inline-block,讓其排列在一行,溢出隱藏,因?yàn)?tab下面的.content寬度為360,而且.tab只有在hover的時候?qū)挾炔艜兂?50px,那時候.content剛好顯示.另外設(shè)置過渡,使其寬度增長的過程平緩*/ .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); } /*設(shè)置定位為相對定位,不然.content會有部分內(nèi)容被遮住*/ .tab .content{ position: relative; width: 360px; height: 100%; background-color: #fff; color: #333; margin-left: 80px; padding: 50px 0 0 15px; } .tab .content h2{ font-size: 2.5rem; margin-top: 20px; } .tab .content p{ font-size: .85rem; line-height: 1.6; } /設(shè)置為元素的寬高及字體為Genericons,不然圖標(biāo)無法顯現(xiàn),只會顯示白色的空框框/ .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; } /*因?yàn)楫?dāng)我們hover上去的時候圖標(biāo)會更大,所以after偽類的字體及padding要重新設(shè)置,同時 要將margin-left設(shè)置為80px,這要默認(rèn)情況下顯示的就是before偽類的小圖標(biāo)*/ .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; } /*當(dāng)屏幕最大寬度為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; } /*這個一定要設(shè)置,因?yàn)樵镜?tab:hover時寬度為450px,假如.tab的寬度有600px,在hover時就回剩余150px的空白,不是我們想要的效果*/ .tab:hover{ width: 100%; } .tab .content{ width: 85%; } /*設(shè)置對應(yīng)偽類的padding值,使其大概顯示在中間*/ .social a:before{ padding-top: 60px; padding-left: 25px; } .social a:after{ padding-top: 50px; padding-left: 20px; } }
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“CSS3怎么實(shí)現(xiàn)響應(yīng)式手風(fēng)琴效果”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。