1. 程式人生 > >css3之移動平臺資源

css3之移動平臺資源

表單 touch 滾動 顏色 禁止 有意思 splay 估計 max

隨著移動端越來越普及,前端技術也是百花齊放,但目前移動平臺的技術已經趨向於成熟,記得剛實習的時候就是接觸的移動端,但現在2年多來,期間遇到了很多莫名其妙的問題,見證了手機用戶量的突飛猛進,興喜的是更多的人能見識到自己做的東西,這也是我一直一來的動力,當然也迎來了前所未有的挑戰,機型層出不窮,比如OV一個月叠代一次的速度,也是比較可怕的。

下面列舉一下一些常用問題的調整技巧:

safari瀏覽器下

去掉input輸入框半陰影效果(這是IOS的默認樣式):

input{-webkit-appearance:none;}

鏈接圖片禁止觸發長按回調:

.css {
  -webkit-touch-callout
: none; }

去掉元素點擊半透明邊框:

.css {
  -webkit-tap-highlight-color: transparent;
}

表單內容禁止選中:

.css {
  user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  -moz-user-select: none;
}

表單內容禁止拖放:

.css {
  -webkit-user-drag: none;
}

修改placeholder顏色:

input::-webkit-input-placeholder 
{ color: #999999; }

去掉android輸入框的語音鍵:

input::-webkit-input-speech-button {
  display: none;
}

去掉input輸入框首字母大寫的問題:

<input autocapitalize="off" autocorrect="off" />

去掉input輸入框自動填充的問題(密碼輸入框,驗證碼輸入框):

<input autocomplete="false"/>

input數字鍵盤喚起(iOS無小數點,android有,需要非法輸入校驗):

<input type
="text" pattern="[0-9]*">

去掉input獲取焦點高亮:

input:focus {
  outline: none;
}

去掉textarea右下角小箭頭:

textarea {
  resize: none;
}

拍照攝影功能:

<input type="file" capture="camera" accept="image/*">
<input type="file" accept="video/*">

微信瀏覽器字體顏色改不了:

.css {
  -webkit-text-fill-color: #999999;
}

滾動不流暢:

.css {
  -webkit-overflow-scrolling: touch;
  overflow-scrolling: touch;
}

硬件加速:

.css {
   -webkit-transform: translate3d(0, 0, 0);
   -moz-transform: translate3d(0, 0, 0);
   -ms-transform: translate3d(0, 0, 0);
   transform: translate3d(0, 0, 0);
}

Android webview上默認data-dpr="1",這是因為android手機普遍采用LCD屏,

但實際dpr可能不止是1,大部分是2,也可能是3,屏幕尺寸卻還是一倍圖尺寸

iOS webview上默認data-dpr="2"或者data-dpr="3",這是因為iOS普遍采用高清屏,

實際dpr就是data-dpr的值,屏幕尺寸為dpr值 X 1倍圖尺寸

這裏對DPR倍圖適配的媒體查詢上要有所區別,data-dpr只能是對屏幕是否為高清屏做區分,而對LCD屏的劃分不是很準確,首先對於iOS的適配肯定是需要DPR做倍圖劃分的,而iPhoneX Retina屏的出現導致DPR的值是無法準確估計的,因此iOS適配上采用最小DPR去適配效果會好一些,而Android上各個LCD屏幕最大的DPR都是固定的,因此iOS和Android的媒體查詢區別如下:

//android
@media only screen and (-webkit-max-device-pixel-ratio: @dpr) {

}
//ios
@media only screen and (-webkit-min-device-pixel-ratio: @dpr) {

}

當然另外一個有意思的地方是Android上部分機型可以適配非公開屬性-webkit-device-pixel-ratio,對應的值為-webkit-max-device-pixel-ratio

css3之移動平臺資源