移动端 CSS Reset 该怎么写
为了应对各大浏览器厂商对浏览器默认样式的不统一处理,我们往往会进行一个 css reset 操作,由于没有标准而且受个人偏好影响,每个公司实现的都不尽相同。在移动端的我们需要关注哪些点呢?
- 特别针对 IOS 设备的问题
- 滚动容器的问题
- 不同浏览器会给同一种标签的元素设置不同的默认样式
下面是我经常使用的一种 css reset 方式:
@charset "utf-8";
* {
/**
* 简单粗暴, 一劳永逸的写法
*/
padding: 0;
margin: 0;
font: inherit;
vertical-align: baseline;
}
* {
/*
* 这个属性只用于iOS, 当你点击一个链接或者通过Javascript定义的可点击元素的时候
* 它就会出现一个半透明的灰色背景
*/
-webkit-tap-highlight-color: rgba(0,0,0,0);
}
a, a:active, a:hover {
/**
* 某些浏览器会给 a 设置默认颜色
*/
color: unset;
text-decoration: none;
}
ol, ul, li {
/**
* 去掉列表样式
*/
list-style: none;
}
img {
border: 0;
vertical-align: middle
}
table {
/**
* 去掉 td 与 td 之间的空隙
*/
border-collapse: collapse;
border-spacing: 0;
}
input, textarea, select {
outline: none; /*去掉fouce时边框高亮效果*/
background: unset; /*去掉默认背景*/
appearance: none;
-webkit-appearance: none; /* 去除ios输入框阴影 */
}
body {
-webkit-text-size-adjust: none; /* 禁止字体变化 */
font-size: 14px;
font-weight: 400;
font-family: Helvetica,Arial,sans-serif;
line-height: 1;
-webkit-overflow-scrolling: touch; /* 设置滚动容器的滚动效果 */
}
/* 禁止选中文本内容 */
*:not(input, select, textArea) {
-webkit-user-select: none;
}
如果有不对的地方或者您有其他建议,欢迎指正或者一起讨论。