-webkit-overflow-scrolling:touch;
overflow-scrolling:touch;
flex-shrink:0;
A元素将不会再被挤压
-webkit-tap-highlight-color:rgba(255,255,255,0);
-webkit-touch-callout:none;
-webkit-user-select:none;
-khtml-user-select:none;
-moz-user-select:none;
-ms-user-select:none;
user-select:none;
border: 0;
-webkit-appearance:none;
outline:none
-webkit-text-size-adjust:none;
-ms-text-size-adjust:100%;
text-size-adjust:100%;
background-clip:padding-box;
function checkLength(obj, length) {
if(obj.value.length > length) {
obj.value = obj.value.substr(0, length);
}
}
input的type为number时,会默认生成上下箭头调整数值,step=0.01,可以允许输入2位小数,点击上下箭头分别增加0.01和减少0.01。
input[type=number] {
-moz-appearance:textfield;
}
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0;
}
this.value = this.value.replace(/\u2006/g, ‘‘);
cursor:pointer;
默认情况下,设备会自动识别任何可能是电话号码的字符串
img{-webkit-touch-callout: none;}
overflow:hidden;
font-size:0;
div {
width: 80%;
width: -webkit-calc(100% - 100px);
width: calc(100% - 100px);
}
select option {
direction: rtl;
}
这个不是 BUG,由于自动播放网页中的音频或视频,会给用户带来一些困扰或者不必要的流量消耗,所以苹果系统和安卓系统通常都会禁止自动播放和使用 JS 的触发播放,必须由用户来触发才可以播放。
解决方法:先通过用户 touchstart 触碰,触发播放并暂停(音频开始加载,后面用 JS 再操作就没问题了)。
document.addEventListener('touchstart', function () {
document.getElementsByTagName('audio')[0].play();
document.getElementsByTagName('audio')[0].pause();
});
部分Android机型需要点击两次,目前没有想到什么好的办法
user-scalable=no和,user-scalable=0效果一样
content的默认值是no,表示正常显示。可通过只读属性window.navigator.standalone来确定网页是否以全屏模式显示。
1.使用 css3媒体查询,缺点是宽度和高度不好控制
@media screen and (orientation: portrait) {
.main {
-webkit-transform:rotate(-90deg);
-moz-transform: rotate(-90deg);
-ms-transform: rotate(-90deg);
transform: rotate(-90deg);
width: 100vh;
height: 100vh;
/*去掉overflow 微信显示正常,但是浏览器有问题,竖屏时强制横屏缩小*/
overflow: hidden;
}
}
@media screen and (orientation: landscape) {
.main {
-webkit-transform:rotate(0);
-moz-transform: rotate(0);
-ms-transform: rotate(0);
transform: rotate(0)
}
}
2.使用js 判断屏幕的方向或者resize事件
var evt = "onorientationchange" in window ? "orientationchange" : "resize";
window.addEventListener(evt, function() {
var width = document.documentElement.clientWidth;
var height = document.documentElement.clientHeight;
$print = $('#print');
if( width > height ){
$print.width(width);
$print.height(height);
$print.css('top', 0 );
$print.css('left', 0 );
$print.css('transform' , 'none');
$print.css('transform-origin' , '50% 50%');
}
else{
$print.width(height);
$print.height(width);
$print.css('top', (height-width)/2 );
$print.css('left', 0-(height-width)/2 );
$print.css('transform' , 'rotate(90deg)');
$print.css('transform-origin' , '50% 50%');
}
}, false);
110
div{
-webkit-touch-callout: none;
}
-webkit-transform:translate3d(0, 0, 0);
-moz-transform:translate3d(0, 0, 0);
-ms-transform:translate3d(0, 0, 0);
transform:translate3d(0, 0, 0);
尽可能地使用合成属性transform和opacity来设计CSS3动画,不使用position的left和top来定位
input:-webkit-autofill{
-webkit-box-shadow: 0 0 0 1000px white inset;
}
input[type=text]:focus, input[type=password]:focus{
-webkit-box-shadow: 0 0 0 1000px white inset;
参考链接:
https://www.jianshu.com/p/dc2c4613e60c
https://blog.csdn.net/smile_to_lin/article/details/75349122
原文作者技术博客:https://www.jianshu.com/u/ac4daaeecdfe
95后前端妹子一枚,爱阅读,爱交友,将工作中遇到的问题记录在这里,希望给每一个看到的你能带来一点帮助。
欢迎留言交流。