CSS實現點擊事件及實踐


實現原理利用:target,把a標簽自身的href以及id設置成一樣的。

 

案例1:實現元素的切換

HTML:

<div id="box">
  <a href="#a" id="a">
    <p>我是P1的內容</p>
  </a>
  <a href="#b" id="b">
    <p>我是P2的內容</p>
  </a>
</div>

CSS:

body,div{
  margin:0;
  padding:0;
}
#box>a{
  display:none;
}
#box>a:first-of-type{
  display:block;
}
#box>a:target{
  display:none;
}
#box>a:target + a{
  display:block;
}

效果

 

點擊后成這樣。

再次點擊

 

實現的原理就是先讓所有的a標簽隱藏,讓第一個顯示,當點擊的時候讓自己隱藏讓它的下一個兄弟元素顯示,其實這里有個坑,一開始實現這個效果的時候我以為會出問題,其實光這句話是不夠的,剛剛碰巧我使用了

#box>a:first-of-type{
  display:block;
}

其實很關鍵,因為+號是匹配不了它的上一個兄弟元素的,不太好解釋,自己去想吧。

 

 

案例2:通過點擊事件結合模擬父元素選擇器使用可以看這篇文章:CSS中模擬父元素選擇器

 

案例3:利用target制作的tab切換可以看這篇文章:CSS3選擇器的研究,案例 ctrl+f 搜索target

 

另外一種tab的實現,通過結合z-index

HTML:

<ul class="tabs">
  <li><a href="#tab1">標簽一</a></li>
  <li><a href="#tab2">標簽二</a></li>
  <li><a href="#tab3">標簽三</a></li>
</ul>
<div id="tab1" class="tab_content">
  tab1
</div>
<div id="tab2" class="tab_content">
  tab2
</div>
<div id="tab3" class="tab_content">
  tab3
</div>

CSS:

.tab_content {
  border: 1px solid #ccc;
  background: #fff;
  padding: 20px;
  height: 250px;
  position: absolute;
  top: 150px;
  left: 0;
  width: 600px;
}
div:first-of-type{
  z-index:1;
}
div:target{
  z-index:1;
}

 效果:

當然還有其他可以做的,暫時沒想到,有新想法再更新。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM