做一款軟體首先是要做出相應的介面,然而對於手機軟體開發者來說,大小各異的手機螢幕卻給我們帶來了不少的麻煩。html5技術在大家的心中要比傳統的android/ios/wp簡單的多,因為它的適配性和平台跨越方面比較出色。在外看來卻不是那樣的,跨平台的問題暫且不說,其螢幕適配方面並不比原生態**簡單。下面給大家分享下我總結出來的h5介面適配:
一、media queries
1:css中根據要求寫不同的螢幕範圍,如下:
@media screen and (min-width: 240px) and(max-width:319px)
2:html**頭部新增下面一段:
這種方式跟android中通過多個drawable、layout、value資料夾各自編寫xml介面的方式相同。
二、em和rem的使用
避免px單位的使用是個很重要的一點。這裡用em和rem來代替px。
em:根據父標籤的字型大小來設定當前標籤的寬高或字型大小。如:
如果給b設定字型大小為0.5em,則b的字型大小將會是a的一半。但是本人並不推薦大量使用em,因為這會讓你的計算變得困難。試想,當多層巢狀時都使用em那最裡面的字型將是最外層標籤字型的幾分之幾呢?
rem:根據跟標籤的字型大小來適配當前標籤的寬高或字型大小。
這個單位推薦使用,所謂的跟標籤,對於html**來說,自然就是最外層的標籤了。不管自己的html**有多少層的巢狀rem單位總是根據標籤字型來計算。
三、百分比的使用
要想螢幕適配的好,就多用百分比來作為寬高的值。這一般是用在css上。
四、絕對適配方案
不久前開啟qq郵箱,發現乙個現象,當螢幕很小的時候qq郵箱的字型就很小,當瀏覽器不斷的拖大的過程中字型就好跟著慢慢變大。這讓我甚是驚奇,我也一直想實現這樣的乙個螢幕適配方案。後來有了下面的方案,其實就是為了把這個方案分享出去才會有了這篇文章,說起來也簡單,在採用rem作為大小單位的同時通過js根據螢幕大小計算出乙個合適的數值賦值給當前的html即可。
在onload的時候執行下面的**(後面的20根據自己的需要來改)
var fontsize = $(window).width()/20;//螢幕的寬
$("html").css("font-size",fontsize +"px");
這裡是引用了jquery,因而上面兩行**也是jquery的**。
純js**可以這樣寫:
var fontsize = document.body.clientwidth
var htmlelement = document.getelementsbytagname("html")[0];
htmlelement.style.fontsize=fontsize+」px」;
其實不難看出,就是拿當前的螢幕尺寸去除乙個數值,得到字型大小,進而將這個字型大小賦值給heml跟節點(跟標籤)即可,然後全文設定字型大小或控制項大小時使用rem作為單位。也可以配合百分比設定控制項大小。這樣一來基本上可以根據螢幕尺寸完美縮放自己的介面了。
簡談網路程式設計
網路程式設計的本質是兩個裝置之間的資料交換。乙個裝置中的資料傳送給兩外乙個裝置,然後接受另外乙個裝置反饋的資料。現在的網路程式設計基本上都是基於請求 響應方式的,也就是乙個裝置傳送請求資料給另外乙個,然後接收另乙個裝置的反饋。傳送第一次請求的程式,被稱作客戶端 client 等待其他程式連線的程式被...
mysql索引簡談
mysql索引簡談 一 什麼是索引 就好比我們在看一本書的時候,有目錄的話,我們可以快速定位到想看的地方,而沒有目錄的話,我們只能一頁一頁地翻。索引就像目錄,有了索引,資料庫可以快速查詢到目標內容,而不必查詢整個資料庫表,但是如果沒有的話,資料庫只能一行一行地遍歷資料。create table t ...
簡談Mysql分割槽
談談mysql分割槽 mysql儲存是以檔案形式儲存在磁碟上的,一張表對應的三個檔案,分別是 frm frame 存放表結構,myd存放表資料,myi存放表索引 當資料量太大時,myd和myi就會過大,查詢就會變慢,這個時候我們就會用到mysql分割槽功能,將一張表對應的三個分割槽分成許多小塊。介紹...