零碎筆記 移動Web特別樣式處理

2021-09-18 04:13:15 字數 1894 閱讀 8774

高畫質跟我們平時下的那種電影高畫質是不一樣的,移動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...