在10年前有一個軟體叫qq,它的面闆實作了一種推拉效果,後來有人命名為“手風琴”效果并在網頁上通過js實作了這個效果,到今天這種效果依然在一些背景管理界面中存在着。還有一種效果,即window系統實作的一種頁籤的效果,不同标簽切換顯示對應标簽下的内容,後來這種效果也廣泛地被應用到網頁中,那麼是不是實作這些效果,必須要寫js代碼呢,答案是否定的,今天我帶大家通過css3的:target僞類選擇器實作這兩種司空見慣的效果。
手風琴案例:
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>:target手風琴效果應用</title>
- <style type="text/css">
- .accordionMenu{
- font: 12px simsun;
- background: #FFFFFF;
- color: #424242;
- margin: 0 auto;
- padding: 10px;
- width: 500px;
- }
- .accordionMenu h2{
- margin: 1px 0;
- padding: 0;
- position: relative;
- }
- .accordionMenu h2 a{
- font-size: 13px;
- text-shadow: 2px 2px 2px #aeaeae;
- text-decoration: none;
- background-color: #8f8f8f;
- background-image: -webkit-linear-gradient(top,#cecece,#8f8f8f);
- border-radius: 5px;
- color: #424242;
- display: block;
- margin: 0;
- padding: 10px;
- }
- .accordionMenu h2:before{
- border: 5px solid #FFFFFF;
- border-color: #FFFFFF transparent transparent;
- width: 0;
- height: 0;
- content: '';
- position: absolute;
- right: 10px;
- top: 15px;
- }
- .accordionMenu :target h2 a,
- .accordionMenu h2 a:hover{
- background-image: -webkit-linear-gradient(top,#6bb2ff,#2288dd);
- color: #FFFFFF;
- }
- .accordionMenu p{
- font-size: 14px;
- margin: 0;
- padding: 0 10px;
- -webkit-transition: all .5s ease-in;
- display: none;
- overflow: hidden;
- background: lightyellow;
- border-radius: 5px;
- }
- .accordionMenu :target p{
- height: 100px;
- display: block!important;
- overflow: auto;
- }
- .accordionMenu :target h2:before{
- -webkit-transform: rotate(-90deg);
- -webkit-transform-origin: 50% 0;
- -webkit-transition: all .2s ease;
- }
- </style>
- </head>
- <body>
- <div class="accordionMenu">
- <div class="menuSection" id="friend">
- <h2><a href="#friend" target="_blank" rel="external nofollow" >我的好友</a></h2>
- <p>我的好友:URL後面跟錨點#,指向文檔内某個具體的元素。這個被連結的元素就是目标元素(target element),:target選擇器用于選取目前活動的目标元素。URL後面跟錨點#,指向文檔内某個具體的元素。這個被連結的元素就是目标元素(target element),:target選擇器用于選取目前活動的目标元素。</p>
- </div>
- <div class="menuSection" id="stranger">
- <h2><a href="#stranger" target="_blank" rel="external nofollow" >陌生人</a></h2>
- <p>陌生人:E:target僞類使用方法E:target僞類使用方法E:target僞類使用方法E:target僞類使用方法E:target僞類使用方法E:target僞類使用方法E:target僞類使用方法</p>
- </div>
- <div class="menuSection" id="blacklist">
- <h2><a href="#blacklist" target="_blank" rel="external nofollow" >黑名單</a></h2>
- <p>這裡是黑名單的内容!!</p>
- </div>
- </div>
- </body>
- </html>
複制代碼
效果圖:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiIXZ05WZD9CX5RXa2Fmcn9CXwczLcVmds92czlGZvwVP9EUTDZ0aRJkSwk0LcxGbpZ2LcBDM08CXlpXazRnbvZ2LcRlMMVDT2EWNvwFdu9mZvwVPZhUYtpFSjZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39DM0EzMyMTN2EDNwITM0EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
頁籤案例:
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>:target頁籤</title>
- <style type="text/css">
- *{
- font-family: "microsoft yahei";
- margin: 0;
- padding: 0;
- }
- #tabs{
- width: 500px;
- height: 400px;
- margin: 50px auto;
- }
- .tabTitle{
- width: 100%;
- height: 40px;
- line-height: 40px;
- clear: both;
- overflow: hidden;
- }
- .tabTitle > a{
- font-size: 16px;
- text-align: center;
- text-decoration: none;
- color: #000000;
- min-width: 76px;
- height: 100%;
- padding: 0 12px;
- background: #EEEEEE;
- display: block;
- float: left;
- margin-right: 1px;
- }
- .tabTitle > a:hover{
- color: #ffffff;
- background: #00A750;
- }
- .tabContent{
- word-break: break-all;
- color: #FFFFFF;
- width: 100%;
- height: 100px;
- border: 1px solid #EEEEEE;
- overflow: hidden;
- }
- .tabContent > div{
- font-size: 14px;
- width: 100%;
- height: 100%;
- padding: 10px;
- background: #FFFFFF;
- overflow: hidden;
- box-sizing: border-box;
- z-index: 1;
- }
- .tabContent > div:nth-child(1),.tabTitle > a:nth-child(1){
- background: lightsalmon;
- }
- .tabContent > div:nth-child(2),.tabTitle > a:nth-child(2){
- background: lightpink;
- }
- .tabContent > div:nth-child(3),.tabTitle > a:nth-child(3){
- background: goldenrod;
- }
- :target{
- z-index: 2;
- }
- </style>
- </head>
- <body>
- <div id="tabs">
- <div class="tabTitle">
- <a href="#tab1" target="_blank" rel="external nofollow" >我的好友</a>
- <a href="#tab2" target="_blank" rel="external nofollow" >陌生人</a>
- <a href="#tab3" target="_blank" rel="external nofollow" >黑名單</a>
- </div>
- <div class="tabContent">
- <div id="tab1">我的好友:URL後面跟錨點#,指向文檔内某個具體的元素。這個被連結的元素就是目标元素(target element),:target選擇器用于選取目前活動的目标元素。URL後面跟錨點#,指向文檔内某個具體的元素。這個被連結的元素就是目标元素(target element),:target選擇器用于選取目前活動的目标元素。</div>
- <div id="tab2">陌生人:E:target僞類使用方法E:target僞類使用方法E:target僞類使用方法E:target僞類使用方法E:target僞類使用方法E:target僞類使用方法E:target僞類使用方法</div>
- <div id="tab3">這裡是黑名單的内容!!</div>
- </div>
- </div>
- </body>
- </html>
複制代碼
效果圖: