高畫質跟我們平時下的那種電影高畫質是不一樣的,移動web的高畫質的概念是我這張圖這麼大,清晰度這麼多,那麼我們在移動裝置上就該展示這麼清晰。那麼為什麼會產生模糊呢?假如一張100px * 100px
那我們在移動裝置上就以100px * 100px
去展示,這想想也是沒有問題的。
但我們想想,在retina螢幕,乙個px等於兩個dp,那你拿100px*100px
實際上是拿了200dp * 200dp
物理畫素去渲染,就會被拉大被模糊。
在移動web頁面上渲染,為了避免產生模糊,的寬高應該用物理畫素單位渲染,即是100 * 100
的,應該使用100dp * 100dp。
width:(w_value/dpr) px;
height:(h_value/dpr) px;
那說白了,在高畫質螢幕下,假如100100的,那麼我們就應該使用5050的px去渲染,那如果在iphone6 plus下這時候dpr大於2的話,那我們就應該除以它的dpr(3)這樣的方式。
一畫素的邊框的問題其實最根本的問題還是retina螢幕的問題,那我們設定了border:1px,那1px就等於2個dp,那它實際上這個1畫素邊框拿了2個dp來渲染,所以那條線就不是很細,如果我們拿1dp來渲染的話就會更加精緻更加細膩。
那怎麼解決呢?
如果把border:0.5px可以不可以呢?答案是不可以的,因為它僅僅是ios8可以用。
實際上更通用的方案是使用sacley(0.5)來進行縮放處理:
.sidbar .folder li
.folder li + li:before
當然,網上還有其他方案可以選擇。
為了適應各大螢幕的手機,px略顯固定,不能根據尺寸的大小而改變,使用相對單位更能體驗頁面的相容性。相對單位有兩個:
em在多層巢狀下,變得非常難以使用和維護了,rem更加能作為全域性同意設定的度量,我們推薦使用rem。
rem的基值設定多少好?回歸我們的目的:為了適應各大手機螢幕,我們可以這樣: rem = screen.width / 20 ,或者除以10等。
// 預設320px
html
// iphone6
@media (min-device-wdith : 375px)
}// ihpone6 plus
@media (min-device-width : 414px)
}
如iphone5上的rem基值為32px,渲染一張6464px的div,則用2rem2rem去渲染。換算公式非常簡單:
width: px/rem基值
height: px/rem基值
一般來講font-size是並不應該使用rem等相對單位的。因為字型的大小是趨於閱讀的實用性,並不適合與排版布局。
同理,趨向於一些固定的元素的特性。我們不使用rem而改為使用px去確保在不同的螢幕上表現一致(跟rem的目的相反)。
單行文字溢位,對title類的使用非常多,而多行文字類,在詳情介紹則用的比較多。
/*單行文字溢位*/
.inaline
/*多行文字溢位*/
.intwoline
屬性-webkit-line-clamp就可以控制幾行溢位,4就是第四行進行截斷加「…」 C 零碎筆記
1 編寫c 儲存為.cs檔案。2 通過csc.exe程式來將.cs檔案編譯為.net程式集 exe或.dll 是 偽exe 包含很多內容其中有微軟中間語言il可以被翻譯成類似彙編的中間碼 此時的exe或dll並不是機器碼 cpu不可理解 csc out c a.exe c program.cs 3 ...
Python零碎筆記
魔法方法 在python中,有一些內建好的特定的方法,這些方法在進行特定的操作時會自動被呼叫,稱之為魔法方法。常見的魔法方法有 init 初始化函式,在建立例項物件為其賦值時使用,必須至少有乙個引數self。new 建構函式,建立並返回乙個例項物件。必須要有返回值,返回例項化出來的例項。class ...
零碎方法筆記
網頁icon 網頁可視高度 document.documentelement.clientheight 獲取某個元素的實際位置 var rect dom.getboundingclientrect 單個或多個的iframe高度自適應 根據視窗大小,頁面自適應高度 window.onresize fu...