移动布局基础(流式布局)

简介: 移动布局基础(流式布局)

一.视口



视口(viewport) 就是浏览器显示页面内容的屏幕区域。视口可分为布局视口,视觉视口,和理想视口。


1.布局视口:ios android视口分辨率为980px,pc上能显示大多页面,只是元素很小,一般默认可以缩放

2.视觉视口:我们可以缩放来操作视觉视口,但不影响布局视口,布局视口仍保持原来的宽度

3.理想视口


 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">


二.二倍图



1.1物理像素,物理像素比

  • 我们开发的时候1px不是一定等于1个物理像素的
  • pc端页面时,1px等于1个物理像素的,但是移动端不尽相同
  • 一个px的能显示的物理像素点的个数,称为物理像素比或屏幕像素比


1.2 二倍图

  • 我们需要一个50 *50像素的图片 直接放到我们inphone8里面会放大2倍 100 *100就会变模糊
  • 我们采取的是放一个100 *100图片 然后手动的把这个图片缩小为50 *50像素的
  • 所以我们准备的图片比我们实际需要的大小大2倍,这种方式就是二倍图


1.3 多倍图

不同手机的缩放比例不一样


2.1 背景缩放


  • background-size: 背景图片宽度,背景图片高度,如果后面只有一个参数,就是宽度,高度会等比列缩放
  • background-size: cover 会把父盒子完全覆盖,可能会有出来的一部分
  • background-size: contain 等比例拉伸 当宽度或者高度铺满父盒子,就不会拉伸


移动端技术解决方案



CSS3盒子模型


box-sizing: border-box;//css3盒子模型

padding 和 border不会再撑大盒子

移动端多用CSS3盒子模型

不考虑兼容性问题,就用css3盒子模型

div样式中设置样式{box-sizing:border-box;}

padding border不会撑大盒子 同IE盒模型


a链接在手机端出现点击后链接高亮的问题


解决方案:点击后设置高亮颜色为透明

a{
-webkit-tap-highlight-color:transparent;
}


输入框或按钮自定义样式的问题


解决方案:清除默认外观才可以设置自定义样式

input{
-webkit-appearance:none;
}


关于不想长按页面某一元素弹出菜单问题


解决方案:

img,a{
-webkit-touch-callout:none;
}


移动端常见布局



1.单独制作移动端页面(主流)

  • 流式布局
  • flex弹性布局
  • less + rem + 媒体查询布局
  • 混合布局


2.响应式页面兼容移动端(其次)

  • 媒体查询
  • bootstarp


移动端案例(m.jd.com)



1.技术选型

  • 方案:单独制作移动端页面
  • 技术:流式布局

2.文件夹

  • css
  • images(ui图,背景图)
  • upload(产品图片)
  • index.html(首页)


3.样式

  • 引入视口标签
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">


  • 引入css3样式

①将normalize.css放入css文件夹中,引入css初始化文件

②引入我们首页的css

①<link rel = "stylesheet" href = "css/normalize.css">
②<link rel = "stylesheet" href = "css/index.css">


4.具体例子

0d6ecdd815a1459da5924e74e9b7ca08.png


搜索栏做法


左边和右边盒子用定位,中间搜索栏可以不用给宽度,用padding/margine值

导航栏距离上端还有段距离,需要给margine-top: 7px 但是父级元素内部有子元素,如果给子元素添加margin-top样式,那么父级元素也会跟着下来,造成外边距塌陷 可以用overflow:hidden 解决外边距塌陷

overflow:hidden的各种作用可以看这篇博客,总结得很好


放大镜二倍精灵图做法


1.在firework里面把精灵图等比例缩放为原来的一半

2.之后根据大小测量坐标

3.注意代码里面background-size也要写成:精灵图原来宽度的一半


11227d09419040318123aa7738811268.png


超级品牌日做法


大盒子里面宽度设置为100%,三个div小盒子宽度设置为33.33%向左浮动,设置圆角,但是圆角是给div盒子设置的,对图片没有影响,所以我们要设置overflow: hidden把超出的部分隐藏,这样才会显示圆角a64338c1cfed46d9a1254d237351e822.png

图片默认有空白缝隙,取消缝隙,vertical-align: top;

目录
相关文章
|
1月前
布局
​ 可选值: ​ visible. 默认值 子元素会从父元素中溢出,在父元素外部的位置显示 ​ hidden 溢出的内容将会被裁剪不会显示 (一剪没) ​ scroll 滚 ,生成两个滚动条,通过滚动条来查看完整的内容 ​ auto 根据我们需要生成滚动条 ​ overflow-x:单独处理水平的 ​ overflow-y: 单独处理垂直的
|
1月前
|
编解码 前端开发
响应式设计布局要不要了解一下?
响应式设计布局要不要了解一下?
24 0
|
6月前
|
安全 容器
由圣杯布局引发的思考
今天在MDN看到块格式化上下文有点不以为然,关键是它写的高深莫测,读不懂... 于是下午想试试圣杯布局的时候,终究还是逃不过它。🤣 这里不介绍圣杯布局的历史,这样的文章网上不知道多少篇,我来写写千篇一律中的亮点吧,哈哈。
29 0
|
7月前
|
Web App开发 设计模式 前端开发
DIV+CSS布局总结
DIV+CSS布局总结
|
8月前
|
UED 容器
如何实现侧边两栏宽度固定,中间栏宽度自适应的布局?——双飞翼布局、圣杯(Holy Grails)布局
如何实现侧边两栏宽度固定,中间栏宽度自适应的布局?——双飞翼布局、圣杯(Holy Grails)布局
51 0
|
10月前
圣杯布局实现
圣杯布局实现
|
11月前
|
前端开发 容器
从0开始学习FlexBox布局
之前研究过一篇《移动端适配总结》,里面主要通过布局不变,改变布局组件元素的大小去适应移动端。但是这种方式对于PC端或者Pad等大屏幕并不适合,所以从想找找看是否有新的方案能否满足跨端自适应布局方式。
89 0
|
前端开发
Flex 布局与传统布局的比较
在前端开发中,页面的布局是一个非常关键的问题。传统的布局方式,如使用浮动和定位来实现布局,虽然可以实现一定的布局效果,但是代码量较多,可维护性较差,难以实现复杂的布局需求。
171 0
|
前端开发 容器
移动端页面布局中的流动布局(百分比布局)和弹性布局
移动端页面布局中的流动布局(百分比布局)和弹性布局
移动端页面布局中的流动布局(百分比布局)和弹性布局
|
Web App开发 C++ 容器
Flexbox布局的正确使用姿势
Flexbox布局的正确使用姿势
123 0