1. rem
默认字号
- rem是相对html根元素来说的;浏览器默认的font-size为16px,也就是说默认 1rem为16px。
- 鉴于此,一些网页定义 根元素 font-size为10/16 = 0.675em,那么这个时候1rem为10px。
16px为继承值
而使用rem前,一般都需要加入一些js代码,通过判断屏幕宽度去计算根[html]的font-size,代码为:
(function() {
function autoRootFontSize() {
document.documentElement.style.fontSize = Math.min(screen.width, document.documentElement.getBoundingClientRect().width) / 750 * 32 + 'px';}
window.addEventListener('resize', autoRootFontSize);
autoRootFontSize();
})();
而不需要使用js去计算font-size,直接使用CSS的为解决问题的重点:
/* 基于UI width=750px DPR=2的页面 */
html {
font-size: calc(100vw / 7.5);
}
2. vw vh
vw:
- 1vh表示屏幕可视宽度的1%
vh:
- 1vh表示屏幕可视高度的1%
calc:
- calc()函数用于动态计算长度值,可以组合不同的单位,特别需要注意的是运算符前后都需要保留一个空格
dpr:
- window.devicePixedlRatio (物理像素),就是一个比例,IPhone4开始,dpr为2 ,这个东西的作用是设计稿用750px,一个按钮的设计为100px,那么CSS书写就是50px,详细一点的解释为:https://juejin.cn/post/6844903704567644167
3. 使用nth-child()选择指定元素
demo p:nth-child(2):表示id为demo的元素下的第二个p标签
4. 使用writing-mode排版竖文
writing-mode:vertical-lr
5. 使用 text-align-last对齐两端文本
text-align-last:justify
6. css一行文本超出
p{
overflow:hidden;
white-space:nowrap;
text-overflow:ellipsis;
}
7.多行文本超出
.div{
display: -webkit-box;
-webkit-box-orient:vertical;
-webkit-line-clamp:3;
overflow:hidden
}
8.iOS手机容器滚动条滑动不流畅
.div {
overflow:auto;
-webkit-box-scrolling:touch;
}
9.使用CSS写出一个三角形图表
.div {
height:0;
width:0;
border:10px solid #transparent;
border-top-color:red;
}
10.contenteditable
html中大部分标签是不可以编辑的,但是添加了contentditable属性后,标签会变成可编辑状态。