UI

前端开发笔记

css

Posted by lanbery on August 22, 2019

设备显示像素

CSS


css style @media

额外的小设备(手机,小于 768px) 小型设备(平板电脑,768px 起) 中型设备(台式电脑,992px 起) 大型设备(大台式电脑,1200px 起)

PC端 屏幕分类列表

PC 常见的几个宽度: 1024 1280 1366 1440 1680 1920

分辨率 比例 设备尺寸
1024 * 500 8.9吋
1024*768 4:3 10.4寸、12.1寸、14.1寸、15寸
1280*800 16:9 15.4寸
1280*1024 5:4 14.1寸、15.0寸
1280*854 15:10 15.2
1366*768 16:9 不常见
1440*900 16:10 17寸 仅苹果用
1440*1050 5:4 14.1寸、15.0
1600*1024 4:3 15、16.1
1680*1050 16:10 15.4寸、20.0寸
1920*1200 16:10 15.4寸、20.0寸
1920*1200 23寸

移动设备

@media + rem , html head 添加meta 标签

屏幕宽度大于375px的会按照宽度375px来适配。设计平时给我们的设计稿一般是640px宽度或者750px宽度的,上面的都是假定设计稿是640px宽来计算的,750px也是同理计算。

  • 屏幕宽度是375,设计稿宽度是640,ratio = 375/640=0.5859375;
  • 我们要将设计稿上元素用css单位rem写下来,设定1rem = 100px ;可以设定其它值吗,可以,设置为100是方便我们在写css的时候好计算,小数点直接左移两位就可以了。比如,设计稿上一个宽46px按钮,这样转换成rem直接就是0.46rem
  • 1rem代表设计稿上100px,要用到前面的屏幕宽度和设计稿的宽度比 ratio,设计稿上100px代表了真实的设备 100*ratio = 58.59375px
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1, minimum-scale=1">
@media screen and (min-width:350px){
    html{font-size:342%;}
}
@media screen and (min-width:360px){
    html{font-size:351.56%;}
}
@media screen and (min-width:375px){
    html{font-size:366.2%;}
}
@media screen and (min-width:384px){
    html{font-size:375%;}
}
@media screen and (min-width:390px){
    html{font-size:380.85%;}
}
@media screen and (min-width:393px){    /* 小米NOTE */
    html{font-size:383.79%;}
}
@media screen and (min-width:410px){
    html{font-size:400%;}
}
@media screen and (min-width:432px){ /* 魅族3 */
    html{font-size:421.875%;}
}
@media screen and (min-width:480px){
    html{font-size:469%;}
}
@media screen and (min-width:540px){
    html{font-size:527.34%;}
}
@media screen and (min-width:640px){
    html{font-size: 625%;}
}
@media screen and (width:720px){
    html{font-size: 703.125%;}
}

vw,vh进行适配

vw:viewport width(可视窗口宽度) 1vw等于1%的设备宽度(设计稿宽度)

vh:viewport height(可视窗口高度) 1vh等于1%的设备高度(设计稿高度)

/*窗口设计稿宽200px,高220px*/
@function px2vw($px, $base: 200) {
  @return ($px/($base/100)) + vw;
}
@function px2vh($px, $base: 220) {
  @return ($px/($base/100)) + vh;
}
/*头像宽42px,高42px*/
.avantar{
    width:px2vw(42);
    heightx:px2vh(42);
}

常用Responsitive Styles

@media VS @media screen : @media screen的css在打印设备里是无效的,而@media在打印设备里是有效的

width/height :定义输出设备中的 页面可见区域宽度/高度

device-width/height :定义输出设备的屏幕可见宽/高度

resolution :定义设备的分辨率。如:96dpi, 300dpi, 118dpcm

aspect-ratio :定义输出设备中的页面可见区域宽度与高度的比率

一种方法是直接在link中判断设备的尺寸,然后引用不同的css文件

<link rel="stylesheet" media="mediatype and|not|only (media feature)" href="mystylesheet.css">

另一种方法是直接写在 style 标签里

@media mediatype and|not|only (media feature) {
    CSS-Code;
}