螢幕適配 方法

2022-08-09 08:48:12 字數 2128 閱讀 8117

1、使用meta標籤,這也是普遍使用的方法,理論上講使用這個標籤是可以適應所有尺寸的螢幕的,但是各裝置對該標籤的解釋方式及支援程度不同造成了不能相容所有瀏覽器或系統。

首先解釋該標籤的含義:

解釋:content中的「width」 這個width指的是什麼寬度,我看過的文章對這個都沒有解釋的很清楚,有幾個備選:虛擬視窗的寬度、手機螢幕的寬度、還是頁面的寬度等等?經試驗這個指的是虛擬視窗的寬度。了解寬度之後,對後續的各種scale,就應該知道是誰與誰的比例,是 虛擬視窗寬度 / 頁面寬度,這樣就會有問題出現安卓裝置尺寸差異很大光主流的就有寬度為 320 480 720 1080 等各種尺寸而以上標籤只能支援一種尺寸,當然有些瀏覽器會自動縮放使其適應螢幕,但這不是統一標準,正確的做法是用js動態生成此標籤,當然,應該先獲取螢幕尺寸。

對於此標籤還有以下需要分享:

1)、user-scalable=no就一定可以保證頁面不可以縮放嗎?no,有些瀏覽器不吃這一套,還有一招就是minimum-scale=1.0, maximum-scale=1.0 最大與最小縮放比例都設為1.0就可以了。

2)、initial-scale=1.0   初始縮放比例受user-scalable控制嗎?不一定,有些瀏覽器會將user-scalable理解為使用者手動縮放,如果user-scalable=no,initial-scale將無法生效。

3)、手機頁面可以觸控移動,但是如果有需要禁止此操作,就是頁面寬度等於螢幕寬度是頁面正好適應螢幕才可以保證頁面不能移動。

4)、如果頁面是經過縮小適應螢幕寬度的,會出現乙個問題,當文字框被啟用(獲取焦點)時,頁面會放大至原來尺寸。

以上是使用viewport標籤的一些小體會,分享給大家。

3、百分比法,首先應明確乙個概年,css中的百分比中的百指的是什麼,我告訴你指的是父元素,所有百分比都是這樣的。子元素寬度50%,那麼父元素的寬度就是百,子元素的padding-left:50%,父元素的寬度是百,子元素的margin-top:20%,那麼父元素的高是百。所以body預設寬度是螢幕寬度(pc中指的是瀏覽器寬度)子孫元素按百分比定位(或指定尺寸)就可以了,這只適合布局簡單的頁面,複雜的頁面實現很困難。

4、使用css3單位rem,有人這樣解釋rem,root-em,就是根部的em,想必em大家都懂的,那麼rem就是將根節點html的font-size的值作為整個頁面的基準尺寸,預設html的font-size是16px,即1rem=16px,如果某div寬度為32px你可以設為2rem。當我們把html的font-size設為20px時,1rem=20px,那麼32px=1.6rem了。到這裡我們也就了解了rem的用法了,那麼怎麼用rem來實現不同尺寸螢幕的自適應呢?在頁面載入開始時首先判斷window的寬度(是window的寬度($(window).width()),不是螢幕分辯率的寬度(screen.width),兩者的差別請自行查閱),假設寬度為w,乙個div在寬度為640px的設計稿的下的寬度為dw1,這樣如果html的font-size為100px,那麼這個div的寬度用rem表示是多少呢?計算:div寬度dw2=dw1/100,px與rem之間很好換算,除以100就可以,這是假定螢幕寬度為640的,而不同寬度的螢幕怎麼處理,為了能保證換算容易那就要為html設定乙個合適的font-size,計算:100 / 640 = fontsize / w, fontsize = w / 640 * 100 = w / 6.4;

解釋一下為什麼把100作為乙個縮放比例,用10或1不是更方便嗎,這是因為大多數瀏覽器font-size的最小值為12px,所以只能用100了。所以會在頭部加上這個js**

5、**查詢,**查詢也是css3的方法,我們要解決的問題是適應手機螢幕,這個**查詢正是為解決這個問題而生,**查詢的功能就是為不同的**設定不同的css樣式,這裡的「**」包括頁面尺寸,裝置螢幕尺寸等,比如我們要為寬度小於480px的頁面中的class="icon"的元素設定樣式,可以這樣寫,@media screen and (max-width=480px) };這裡僅介紹這種思路,關於**查詢的詳細用法請參閱css手冊。

綜上,至今,我沒有找到一種完全適應各種螢幕的方法,只能根據頁面特點擊擇不同的方法,多種方法靈活運用,才是王道。

自定義的螢幕適配方法

當然,列數是固定的,但是我們需要的是的寬高比是不會變得,的大小還是得做活的。所以就有如下配置 1 item relatlayout relativelayout itemview.findviewbyid r.id.item relatlayout 2 imageview imageview ite...

移動端螢幕適配方案

物理畫素 解析度devicepixelratio layout viewport visual viewport ideal viewport 需要用到 meta viewport 中有6個通用屬性 移動頁面設計 480 854的比例 dpi 480 screen.width window.devi...

Android螢幕100 適配方案

計算裝置實際高度 基準寬高 private final static int standard width 1080 private final static int standard height 1920 48 實際裝置解析度 private float displaymetricswidth ...