iT邦幫忙

DAY 28
1

CSS沒有極限系列 第 24

CSS沒有極限 - CSS only responsive navigation

本篇CSS效果發表於http://ashareaday.wcc.tw/#2013-10-13 (建議使用Chrome瀏覽器)

這篇要介紹的是noscript的CSS3自適應選單,用的技巧也是先前所介紹的那些,而今天的篇幅看似很長,請別擔心,都只是範例圖而已...。而下面的範例圖就是今天的目標。

Android,Htc one,Browser:Chrome

製作
參考來源: http://valdelama.com/static/demo/responav/css-only/index.html

本站已經有實作此效果,範例就在http://ashareaday.wcc.tw/#2013-10-13 。這個效果只要是利用checkbox配合~的selector,並且利用transform的translateX位移調整,所以此效果必須是支援以上屬性的瀏覽器才能正常顯示。

//Html
<input type="checkbox" id="menuSlider">

<div class="fixed-nav">
  <label for="menuSlider" class="menubtn lsf">tilemenu</label>
  //這是固定的導行列,控制checkbox的label也是在這。
  ...
</div> 

<div class="container">
  <aside id="leftmenu" class="aside"> 
  </aside> 
  //主選單

  <div class="main-content">
  </div> 
  //主要內容
  ...
</div>




//Sass
html,body
  width: 100%
  height: 100%
  //這兩個屬性都要設定100%

.aside
  height: 100% //頂天
  width: 70%  //展開時所要的寬度
  position: fixed //固定位置
  overflow-y: auto //如果選單太長就會有bar
  left: 0 //靠左
  top: 0 //靠上
  z-index: 10 //放在最頂層
  +transform(translateX(-100%)) //先向左位移100%,藏在可視範圍外
  +transition(all .5s) //動畫般的推移效果

.main-content
  +transition(all .5s) //主要的內容也想要有動畫般的推移

#menu-slider:checked //就是那一個checkbox被選取時
  & ~          //在他被選取時,與他同層級的後方...
    .container
      .aside  
        +transform(translateX(0%))
        //.aside從可是範圍外被調整回原本的位置
      .main-content
        +transform(translateX(70%))
        //主要內容被向右推移70%的距離

由於全部的程式碼過於攏長,所以在此重要的屬性設定的原因及觀念,如果想要實作練習,建議可以參考剛剛所提供的相關連結。

範例圖片
Desktop Chrome
正常的情況下,左上方的選單是回首頁。

縮小視窗後,利用Media Query將回首頁換成web font icon。

只要點擊icon就會執行:checked的效果,把左邊的選單拉出來,並且將主要的內容向右推移。

Mobile Chrome
行動版的Chrome也是能夠正常運作,顯示基本上和桌上型的差不多。

用起來還順順的,不錯...

Mobile Firefox
行動版firefox就有一點卡卡的。

android的內建browser就不行囉...,如果想在其他瀏覽器跑,建議還是用javascript...。


上一篇
CSS沒有極限 - pure CSS 專輯列表效果
下一篇
CSS沒有極限 - CSS 的相關資料
系列文
CSS沒有極限41

尚未有邦友留言

立即登入留言