移动布局之流式布局
兼容移动端主流浏览器,处理Webkit内核浏览器就可以了
视口:
1、布局视口:元素看上去小,默认通过手动缩放网页
2、视觉视口:用户看见的网站区域
3、理想视口:设备有多宽,我们布局的视口就多宽(手动添写meta视口标签通知浏览器操作)
想要理想视口,我们需要给移动端页面添加meta标签
meta视口标签
二倍精灵图做法:
1)在firework里面把精灵图等比例缩放为原来的一半
2)之后根据大小测量坐标
3)注意代码里面background-size也要写:精灵图原来宽度的一半。
position:fixed;固定定位
加了固定定位的盒子一定要给它设置宽度
img{
vertical-align: top;
}去除图片底部空白
当行内元素有了浮动之后可以不用再转换为块级元素了
box-sizing: border-box;/c3盒子模型可以把border算进去/
移动布局之flex布局
在移动端应用很广泛
pc端浏览器支持情况较差
1)当我们为父盒子设为flex布局以后,子元素的float,clear和vertical-align属性失效。
2)伸缩布局=弹性布局=伸缩盒布局=弹性盒布局=flex布局
总结flex布局原理:就是通过给父盒子添加flex属性,来控制子盒子的位置和排列方式。
首先给父项添加flex属性display:flex;再设置它其他的常见属性
flex布局父项常见属性:
1)flex-direction:设置主轴的方向(元素跟着主轴排列)
2)justify-content:设置主轴上的子元素的排列方式(先确认好主轴是哪个)(先两边贴边,再分配剩余的空间 justify-content:space-between;)
3)flex-wrap:设置子元素是否换行(默认的子元素是不换行的,如果装不开,会缩小元素的宽度,放到父元素里面)
4)align-content:设置侧轴上的子元素的排列方式(多行)在单行下没有效果
5)align-items:设置侧轴上的子元素排列方式(单行)(align-items:stretch;拉伸,但是子盒子不要给高度)
6)felx-flow:复合属性,相当于同时设置了flex-direction和flex-wrap
flex布局子项常见属性:
1)flex属性定义子项目分配剩余空间,用flex表示占多少份数(flex:;)
2)align-self控制子项自己在侧轴上的排列方式,可覆盖align-items属性
3)order属性定义项目的排列顺序
数值越小,排列越靠前,默认为0
注意:和z-index不一样。
固定的盒子应该有宽度position:flex;(它的宽度以屏幕为主,跟父级没有关系)
有定位的盒子写margin:0 auto;是无效的
使盒子到屏幕的中间:position:fixed;transform:translateX(-50%);left:50%;
固定定位是不占位置的
文字阴影:text-shadow:1px 1px rgba(0,0,0,.2);
背景渐变必须添加浏览器私有前缀background:-webkit-linear-gradient(left,red,blue) ;
移动布局之rem布局
流式布局和flex布局主要针对宽度布局
em相对于父元素的字体大小来说的
rem相对于html元素字体大小来说的
rem优点:可以通过修改html里面的文字大小来改变页面中元素的大小可以整体控制。
媒体查询:@media可以针对不同屏幕尺寸设置不同的样式。
语法规范:
@media mediatype and|not|only(media feature){css-code;}
用@media开头注意@符号
mediatype媒体类型(不同终端设备划分不同类型—all print screen电脑屏幕)
关键字and且 not非 only
media feature媒体特性必须有小括号包含max-width min-width width
媒体查询可以根据不同屏幕尺寸在改变不同的样式
注释不能进行嵌套
文档声明(doctype)
文档声明用来告诉浏览器当前网页的版本
所有数据在计算机底层都会以二进制形式保存
可以将内存想象为一个有多个小格子组成的容器,每一个小格子中可以存储一个1或一个0
一个小格子在内存中被称为1位(bit)
8bit = 1byte(字节)
1024byte = 1kb(千字节)
1024kb = 1mb(兆字节)
1024mb = 1gb(吉字节)
1024gb = 1tb(特字节)
1024tb = 1pb
媒体查询从小到大代码优势
screen必须带上and不能省略,我们的数字后面必须跟单位。
引入资源就是针对不同屏幕尺寸调用不同的css文件
rem适配方案:
通过媒体查询更改html字体大小变化,然后页面元素使用rem做尺寸单位
实际开发适配方案:
按照设计稿与设备宽度比例,动态计算并设置html根标签的font-size大小
css中,按照比例换算为rem为单位的值
方案技术原理:
技术方案1:less 媒体查询 rem
技术方案2:flexible.js rem
1、选一套标准尺寸750为准
2、我们用屏幕尺寸除以我们划分的份数得到html里面文字大小,但是我们知道不同屏幕下得到的文字大小是不一样的
3、页面元素的rem值 = 页面元素在750px下的值 / html里面文字大小的值
固定定位的盒子必定有单位
去除input的蓝色边框在css中设置:outline:none;
flexible是按照当前屏幕大小直接划分的
所有要自己设置最大宽度和最小宽度
flexible.js的下载地址:
https://github.com/amfe/lib-flexible
px自动转化为rem
插件名:cssrem
这个插件默认html文字大小为16px
在设置中自行修改