发表于: 2017-04-06 18:24:26
1 1538
【CSS-TASK13】小课堂【武汉第124期】
移动端有哪些常见的布局方式?
1.背景介绍
随着智能手机的普及以及社会的发展,传统的网站布局已经无法适应现状,我们编写的网页不仅仅要展示在电脑上,也要展示在移动设备上,而移动设备种类繁多,一般的电脑端的页面布局在手机上无法完全适应,所以在手机端上我们要重新布局。
2.知识剖析
固定布局
传统经典定宽高布局,定死宽高,PC上常见布局方式,相对来说也是最基础的布局模式
有固定的版型大小,例如1200px,然后设置margin:0 auto;来居中, 针对低分辨率出现内容挤出body,出现空白的情况,可使用媒体查询给body设置等于版型宽度来避免。
.wrap{
width: 640px;
overflow: hidden;
margin: 0 auto;
}
多列布局
column-count是css3的一个属性,主要用于文本元素,支持响应式。
column-count属性指定某个元素应分为的列数。
column-width属性指定列的宽度。
.wrap{
overflow: hidden;
margin: 0 auto;
column-count: 6;
column-width: 200px;
}
BOOTSTRAP布局
bootstrap是一个比较流行的响应式前端框架,利用bootstrap的栅格系统可以实现响应式的移动端布局。
bootstrap的栅格是基于百分比的,在使用的时候,我们给相应的div设置col-sm-4, col-md-6,col-lg-12。
<p class="c1 col-lg-2 col-md-3 col-sm-4 col-xs-6">
媒体查询+REM布局
使用媒体查询可以根据不同的设备宽度加载不同的css样式
rem是一个相对单位,会根据根节点的字体大小来计算的
使用媒体查询和rem可以实现移动端的响应式。
html{font-size: 20px;}
@media screen and (max-width: 820px) {
html {
font-size: 16px;
}
}
@media screen and (max-width: 650px) {
html {
font-size: 14px;
}
}
@media screen and (max-width: 550px) {
html {
font-size: 10px;
}
}
百分比布局
百分比大小+最大最小宽度实现自适应。高度用内容撑开,宽度使用百分比,同时给div设置一个最大最小宽度
p{
box-sizing: border-box;
padding: 10px;
float: left;
width: 16.66%;
max-width: 200px;
min-width: 150px;
min-height: 350px;
}
Flex布局
flex也称为弹性布局,他会根据页面的剩余宽度自动分配空间。
.grid{
display: flex;
height: 200px;
width: 600px;
}
.box1{
flex: 1;
width: 1%;
background-color: #2196f3;
}
.box2{
/*padding: 0 50px;*/
flex: 1;
width: 1%;
background-color: #1de9b6;
}
3.常见问题
使用flex布局的时候宽度不相等
4.解决方案
首先我们需要了解flex布局的宽度是如何计算的。flex-grow是分配flex容器除内容外剩余空间的比例。
对于上面一个例子,因为内容的宽度大于分配的宽度,将分配的宽度给覆盖了,所以宽度不一样。
所以我们只要保持其宽度一样就可以了,给内部的div都加上width:1%就可以了。
5.编码实战
6.扩展思考
如何使用flex布局实现底部栏固定
7.参考文献
参考一: flex踩过的那些坑
参考二:移动端布局浅谈
8.更多讨论
1.左边宽度固定,右边宽度自适应有哪些实现方式?
2.右边宽度固定,左边宽度自适应的实现方式和上面的一样吗?
鸣谢
感谢大家观看
BY :杨宇飞、叶紫阳
ppt链接:
https://ptteng.github.io/PPT/PPT/css-13-%E7%A7%BB%E5%8A%A8%E7%AB%AF%E5%B8%B8%E8%A7%81%E5%B8%83%E5%B1%80.html#/
视频链接:
https://v.qq.com/x/page/e0391bvfiyr.html
评论