PC端頁面適應不同的分辨率的方法

上周完成一個PC端的項目,對于我這樣的小白來說,這個項目里面最大的問題就是,如何做到讓HTML頁面適應電腦的不同分辨率。
通過師傅的指導和自己查閱資料,最終成功適配不同的分辨率,完成了這個項目。
現在回頭再來看這個項目,突然發現適配不同的分辨率真的非常簡單。這里總結兩種方法,跟大家分享一下。希望可以幫助大家快速完成自己的項目。

一.根據不同的分辨率,加載不同的CSS樣式文件

這個方法的思路是,分別針對800、1280、1440、1600、1920等分辨率,創建不同的css文件。然后在各種分辨率下,寫css樣式表。

可能你會感覺針對一個頁面,要寫這么多不同的css樣式表,這個工作量肯定很大。其實也不盡然,根據我在這個項目中的實踐,發現這個工作量其實是比較小的。

首先,我們在做項目的時候,一般情況下會有一些范圍限制,比如這個項目只需要適配1280~1920分辨率即可。而且各個分辨率之間,我們有的時候只是對頁面上的元素進行寬高、尺寸、位置等進行調整,整體的一個框架是相似或者說是相同的。

不僅如此,有的時候項目的要求不高,沒有比較1:1高度還原設計稿,那么這個時候,我們在1440分辨率下的樣式表,在1280分辨率下也是實用的,這個時候,我們的工作量又進一步減少。

這個時候,我們可以先完成一個分辨率下的css樣式表。然后在這個基礎之上,對其他分辨率進行調整即可。這個過程我們只需要調整一些參數即可。

比如在我的項目里面,這對不同的分辨率,我只做了三個樣式表

樣式表

這個時候,我們只需要在我們的HTML頁面的<head></head>標簽中,使用js,根據不同的電腦分辨率,加載不同的css樣式表。注意這里的js一定要寫在<head></head>標簽里面,這樣在加載頁面內容之前,可以提前把css樣式表加載出來

<script>
    // 分辨率大于等于1680,大部分為1920的情況下,調用此css
    if(window.screen.width >= 1680){
        document.write('<link rel="stylesheet" href="css/index_1920.css">');
    }
    // 分辨率再在1600-1680的情況下,調用此css
    else if(window.screen.width >= 1600){
        document.write('<link rel="stylesheet" href="css/index_1600.css">');
    }
    // 分辨率小于1600的情況下,調用此css
    else{
        document.write('<link rel="stylesheet" href="css/index.css">');
    }
</script>

這樣的話,就可以根據不同電腦的分辨率,就在不同的css樣式表。由此我們便完成了頁面使用不同的分辨率。

二.采用媒體查詢

媒體查詢是CSS3的新特性,絕大多數瀏覽器都可兼容這一特性。這個方法的思路也是根據不同的分辨率,應用不同的css樣式。

如果你對媒體查詢不熟悉,可以點擊鏈接進行學習這一新特性。菜鳥教程-CSS3 @media 查詢

這個思路和和方法一差不多,或者說方法一的思路和這個思路差不多,畢竟這也是官方的做法。我們有兩種使用媒體查詢的方式。

1.根據不同的分辨率,引入不同的css樣式表

這個方法和方法一相同,也是通過判斷電腦的分辨率,來引入相對應的css樣式表。

<!-- 分辨率低于1280,采用test-01.css樣式表 -->
<link rel="stylesheet" media="screen and (max-device-width:1280px)" href="test-01.css">
<!-- 分辨率高于1400,采用test-02.css樣式表 -->
<link rel="stylesheet" media="screen and (min-device-width:1440px)" href="test-02.css">
2.在同一個css樣式表中,根據不同的分辨率,寫不同的css樣式

這個方法只有一個css演示表,在這個樣式表里面,根據不同的分辨率,寫不同的css樣式。

<style media="screen">
    /*分辨率低于1280,采用下面的樣式*/
    @media screen and (max-device-width:1280px){
        div{
            width: 200px;
            height: 200px;
            background-color: green;
        }
    }
    
    /*分辨率高于1440,采用下面的樣式*/
    @media screen and (min-device-width: 1440px){
        div{
            width: 300px;
            height: 300px;
            background-color: red;
        }
    }
</style>

三. 總結

以上的方法的思路大同小異,根據我自己的經歷,給大家提出一些小的建議。

因為我在公司的電腦的分辨率是1440,所以一開始我實在1440分辨率下寫得css樣式表,然后在這個基礎之上,去調整其他的分辨率。發現根據小分辨率樣式去調整大分辨率樣式比較簡單。當然,也許你喜歡由大到小,這都無所謂,看個人興趣。

還有就是,我們在寫css樣式標的時候,盡量寫得規整一點。某一部分的css樣式寫在一起,最好有注釋,這樣我們在其他分辨率下去調整的時候,不至于一頭霧水。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容