css的絕對位置怎麼相容所有的解析度

來源:互聯網
上載者:User
這次給大家帶來css的絕對位置怎麼相容所有的解析度,css絕對位置相容所有解析度的注意事項有哪些,下面就是實戰案例,一起來看一下。

有時候我們在寫頁面中,會發現絕對位置的父級元素已經相對定位了,但是在不同解析度的電腦下,絕對位置還是會錯亂,似乎父級的相對定位並沒有起了作用。

首先要明白如下幾個原理:

1、膝上型電腦的解析度一般為1366*768附近,PC電腦的解析度一般為 1920*1080;

以下為常見電腦解析度:

當寫網頁時,如果在1920這樣的大解析度寫好之後,再去小解析度的筆記本看同樣的這個網頁,會發現,膝上型電腦顯示的基本為寬屏大顯示器下網頁放大至1.5倍左右的展示效果。

2、為了頁面在不同的解析度下正常顯示,要給頁面一個安全寬度,一般在做1920px寬的頁面時,中間要有一個1200px左右的安全寬度,並且置中,所有的內容要寫在這個寬度的box裡,如果有背景圖或者輪播圖必須通欄整個頁面的時候,一定要設定成置中對齊,這樣當解析度降低之後,背景圖或者Banner圖左右、中間1200寬度的盒子依然置中對齊,不會出現向左向右偏離。

盒子裡的p等小盒子可以用百分比來表示,來達到頁面自適應。

絕對位置的使用:

絕對位置的時候,該元素的父元素一定要記得設為相對定位,這樣在不同解析度下定位才不會錯亂,但是前提是這個父元素在一個安全的寬度裡面,如果這個父元素本身是一個會因為解析度降低而改變的元素,則定位一定會跟著亂。

在布局頁面結構的時候,一些box架構是必不可少的,比如1200px安全寬度的p。

例如:做一個活動頁面,其中這個頁面背景為一個大圖,在這個大圖上要放一些小圖來與大圖實現定位,絕對不能以大圖直接作為背景!

而是在放大圖背景的p裡繼續放一個安全寬度p,再把它作為父元素做相對定位,給裡面的子項目做絕對位置,這樣就不會出現不同解析度下絕對位置錯亂的問題了。

通過總結網友經驗,通過加zoom屬性,可以讓頁面某個區塊根據解析度不同進行自動縮放到合適地區,但是有個bug,就是Firefox瀏覽器打死都不支援這個屬性,即使用transform:scale(x,y);屬性也於事無補。還有一個小問題,在頁面載入慢的時候重新重新整理頁面會先顯示放大的效果,再變為縮小後的效果,會閃一下,這個還沒找到解決辦法,希望懂的朋友們多多交流。

zoom代碼如下:

$(function(){        var w=window.screen.width;        var zoom=w/1920;$("#container").css({        "zoom",zoom,        "-moz-transform":"scale("+zoom+")",      "-moz-transform-origin":"top left"      }); });

zoom:當前螢幕解析度寬度/1920;

zoom屬性的瀏覽器支援性:

結果是:除了firefox以外,其他瀏覽器可以正常支援zoom屬性,並且頁面需要縮放的區塊整體縮放到了適應當前解析度的效果,而transform:scale 則是先把頁面顯示為已經把原本頁面放大後再使用scale,則該縮小相當於當前頁面下縮小的效果了,兩邊自然會留白。

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:

css如何做出0.5像素的線條

css3的Transition平滑過渡功能表列實現

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.