常常有人在問我說要怎麼做出讓區塊固定在畫面上的右側
而且不會因為畫面項下捲動而區塊就消失
今天~~就是要來介紹這種方法
這個方式非常的簡單利用CSS就可以達成
但是請注意!!如果是IE瀏覽器要IE8+以上才可以正常使用唷~!
首先我們先建立一個DIV tag並設定其class名稱為「fix」
<div class="fix">123</div>
緊接著我們就要開始設定CSS的部分了
body{ height:5000px; background:#FF0; } .fix{ width:60px; height:60px; border:1px solid #000; position:fixed; top:50px; right:0px; background:#F00; }
上述CSS CODE中我們為了方便讓大家看的明顯一點
所以另外替Body設定了一點點樣式
將body的高度設定為5000px是為了讓畫面出現下拉卷軸
被景色設不設定都沒差,這邊設定只是讓大家可以看到它的Z軸呈現
接著就要設定DIV區塊的樣式了
首先我們位fix定義寬高這樣才能讓區塊顯示在畫面上(否則區塊大小只會剛好符合文字123的寬高)
緊接著設定border邊界讓區塊看起來更明顯一點
再來用CSS的position屬性將區塊位置設定為fixed(固定)
然後設定區塊距離畫面頂端的距離跟右側的距離
如果要讓區塊固定在左側拿掉right:0px;這個屬性即可
最後被景色看各位要不要設定都可以
看起來很麻煩的東西透過CSS也可以輕鬆解決,不過若是有IE8以下的用戶就需要用JQuery或是JS來另外處理了
Dome
See the Pen 將區塊固定在畫面某一處 by jen (@jen_huang) on CodePen.
可以請教為什麼div與外圍距離不是使用margin嗎?
回覆刪除不好意思 現在才看到你的問題
刪除其實這主要是因為我有使用position:fixed;
這個屬性的關係
fixed是將DIV區塊設為固定位置
所以如果使用margin基本上是會無效的
當然這還要看實際的HTML架構才準
宣告為fixed後會將DIV的層級拉到最外層(不管原本是寫在哪)
也就是跳脫出原本的HTML框架
所以距離是依據瀏覽器去計算而不是在以父元素去計算
所以才需要用到Top跟right這種屬性
另外還有margin的性質問題
margin計算距離的方式是根據父元素去計算的
所以如果結構複雜的話margin的位置計算是容易會產生誤差的
這個範例只是一個單純的寫法
真正使用時還需要評估實際狀況才行唷
謝謝你,這樣我理解了
刪除解說的非常詳細
還是要看實際狀況來選擇要應用的屬性^^