通常是採用僞元素模擬的方式css
.scale{ position: relative; border:none; } .scale:after{ content: ''; position: absolute; bottom: 0; background: #000; width: 100%; height: 1px; -webkit-transform: scaleY(0.5); transform: scaleY(0.5); -webkit-transform-origin: 0 0; transform-origin: 0 0; } 複製代碼
其餘border-shadow,svg的方式也能夠,根據項目實際狀況選擇,若是項目移動端適配用的flexible.js作適配,那就很容易作到。html
具體幾種方法詳見:html5
關於移動端開發1px邊框的一些理解及解決辦法android
通常懶人處理點透的方案都是引用fastclick,可是這個插件在某些場景下也有坑,通常要用它的話最好fork下源碼而後修改一下,開發中遇到了如下2個坑:git
1.安卓某些版本觸發兩次點擊問題github
2.光標移位問題(這個問題排查了了很久才找到是fastclick的問題)segmentfault
這種輸入在頁面下方的佈局也很常見,通常評論,留言,聊天都會使用這種佈局,可是有時候彈起的鍵盤會蓋住輸入框,解決方案以下:
移動web頁面,input獲取焦點彈出系統虛擬鍵盤時,擋住input,求解決方案?
web移動端浮層滾動阻止window窗體滾動JS/CSS處理
使用了rem作適配後使用具體值設定border-radius,不要用百分比,不然有些安卓機上50%是個橢圓形。
這個我line-height居中,定位+transform,flex居中都試過,但都是偏上一些,不能垂直居中,最後仍是用的zoom解決。
把input的line-height設爲normal
input{ line-height:normal };複製代碼
詳細原理看stackoverflow上的這個回答:
通常在全部元素最外層再包一個大盒子.wrapper
.wrapper{
position:relative;
overflow:hidden;
}複製代碼
stackoverflow上有好幾種處理方法,能夠順便參考下:
Does overflow:hidden applied to <body> work on iPhone Safari?
這種輸入框在固定在最上面佈局很常見,可是用ios下當鍵盤彈起時fixed會失效。解決辦法在下面文章裏:
一句話解釋就是把頁面滾動改成容器內滾動。
JavaScript中的Date對象在Safari與IOS中的「大坑」
滾動的容器加上這個
-webkit-overflow-scrolling: touch;
複製代碼
移動端滾動懶人推薦使用better-scroll,很好的插件
ios滾動動畫中止的緣由及其餘解決辦法:CSS3 動畫在 iOS 上爲何會由於頁面滾動也中止?
element {
-webkit-touch-callout:none;
}
複製代碼
<meta name = "format-detection" content = "telephone=no"> 複製代碼
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);複製代碼
-webkit-text-size-adjust:100%;
複製代碼
.box {
-webkit-transform-style: preserve-3d;
-webkit-backface-visibility: hidden;
-webkit-perspective: 1000;
} 複製代碼
儘可能使用transform,避免使用height,width,margin,padding等。能夠開啓GPU硬件加速,但用硬件加速的時候也要注意,由於這個也有坑,不合理使用反而會讓應用愈來愈卡!