目录
在实现项目的静态页面时,我们首先要从大局出发,思考整个页面的布局方式,根据需求选择合适的布局方式搭建起页面的基础框架,之后再去填充细节。
一、常见的布局和各自的使用场景
二、拓展与补充
接下来,读者也将从上图出发,做一些进一步深入和拓展
1.布局单位
em/rem
- em:相对于父元素font-size计算值的倍数
- rem:相对于根元素font-size计算值的倍数(1rem=16px)
vw/vh
- vw:1vw 等于视口宽度的1%
- vh:1vh 等于视口高度的1%
vmin/vmax
- vmin: 选取 vw 和 vh 中最小的那个,即在手机竖屏时,1vmin=1vw
- vmax:选取 vw 和 vh 中最大的那个 ,即在手机竖屏时,1vmax=1vh
2. rem布局方案技术使用
less+媒体查询+rem
flexible.js+rem
3. display
display可以定义flex和grid,都是功能非常强大的布局方式
flex
设为 Flex 布局以后,子元素的float
、clear
和vertical-align
属性将失效。
弹性布局(display:flex;)属性详解 - cdgogo - 博客园 (cnblogs.com)
grid
为网格布局以后,容器子元素(项目)的float
、display: inline-block
、display: table-cell
、vertical-align
和column-*
等设置都将失效
CSS Grid 网格布局教程 - 阮一峰的网络日志 (ruanyifeng.com)
4.媒体查询
@media media-type and (media-feature-rule) {
/* CSS rules go here */
}
media-type
all
print
screen
speech
关键字
- and:且
- not:非
- only:指定某个媒体类型
media-feature-rule
- width:设备页面可见宽度
- min-width:设备页面最小可见宽度
- max-width:设备页面最大可见宽度
案例
@media screen and (max-width: 539px) {
body {
background-color: blue;
}
}
@media screen and (min-width: 540px) and (max-width: 969px ) {//可以省略(max-width:969px)效果一样
body {
background-color: pink;
}
}
@media screen and (min-width: 970px) {
body {
background-color: saddlebrown;
}
}
5.多倍图
多倍图(常用于精灵图):把原来的图放大物理像素比倍
- 物理像素:手机的实际长宽(1242*2688)
- 逻辑像素:css代码中的(414*896)
- 像素密度:物理/逻辑
原因:一张照片的长款,在实际移动端显示的时候,其实是放大像素密度倍的,通常会出现图片失真,为解决这个问题,可以将图片本身的分辨率调整到和物理像素相同,也就是多倍图,可使用ps插件进行切图