移动web端
一、单行文本省略号
关于行高的问题
- 将行高设置为1倍,盒子的高度就是文字大小1,可以测量的更加准确
- line-height:1;
- dispaly:flex;
二、流式布局
- 宽度百分比,高度px或者里边的子元素敞开
移动页面注意点:
- 使用css3盒子模型
- 页面不能生成水平滚动条*
- 文字大小一般都是12像素**
-webkit-tap-highlight-color: transparent;
- 清除超链接高亮背景*
三、flex布局常见属性
flex-flow属性是flex-direction和flex-wrap属性的复合属性:
- flex-flow: row wrap;
- flex-direction :设置主轴的方向
- justify-content :设置主轴上的子元素排列方式
- flex-wrap:设置子元素是否换行
- align-content :设置侧轴上的子元素的排列方式(多行)
- align-items :设置恻轴上的子元素排列方式(单行)
- flex-flow :复合属性,相当于同时设置了flex-direction和flex-wrap
移动web开发rem适配布局
1.1 为什么要学rem布局
之前做的页面还有什么问题?
- 文字大小没有自适应
- 元素的高度没有自适应
如何解决
rem布局
- 媒体查询 +rem单位.
- flexible.js + rem单位
- vw/vh
一、媒体查询-语法
作用
- 根据设备不同的特性应用不同的css样式语法:
- 语法
@media mediatype and|not|only (media feature){
css代码...
}
<link rel="stylesheet" media="mediatype and |notjonly (media feature)" href="xx.css">
语法介绍语法介绍:(其实还有更多的值,这里只罗列了一些,但我们只用红色的值)
- @media:对浏览器说:我要使用媒体查询了!
- mediatype:媒体类型(print打印机 |screen屏幕)
- and| not|only: and且、not非、only仅
media feature:媒体特性,值有:
- ·设备宽度width/max-width/min-width
- ·设备高度height
- ·设备方向: portrait (竖屏模式) | landscape(横屏模式)
语法:
/* 媒体查询属于css3属性
当屏幕宽度为700px的时候,执行的样式 */
@media screen and (width: 700px) {
body {
background-color: greenyellow;
}
}
/* 简写
当屏幕宽度等于500px的时候,执行的样式 */
@media (width: 500px) {
body {
background-color: yellow;
}
}
/* orientation:portrait 竖屏,当屏幕竖屏执行的样式 */
@media (orientation:portrait) {
body {
background-color: green;
}
}
/* orientation:landscape 当屏幕横屏执行的样式 */
@media (orientation:landscape) {
body {
background-color: red;
}
}
二、媒体查询区间的写法
min-width:最小的宽度,大于等于某一个宽度执行的样式
max-width: 最大的宽度 小于等于某一个屏幕宽度执行的样式
/* 想实现 屏幕宽度320-600之间的box的背景颜色绿色 */
@media (min-width:320px) and (max-width:600px) {
.box {
height: 300px;
width: 300px;
background-color: green;
}
}
三、em和rem的区别
em和rem单位区别
- 相同点:相对单位
不同点:
- em参考的盒子里边文字的大小
- rem参考的是跟标签文字大小
- 1rem的大小=html跟标签的文字大小
四、媒体查询+rem使用
- 媒体查询+rem适配
- 盒子里边的单位设置为rem,不同的屏幕宽度设置不同的的跟标签文字大小
/* 媒体查询+rem适配
盒子里边的单位设置为rem,不同的屏幕宽度设置不同的的跟标签文字大小 */
@media (min-width: 320px) and (max-width:600px) {
html {
font-size: 12px;
}
}
@media (min-width: 361px) and (max-width:540px) {
html {
font-size: 24px;
}
}
第二种写法:
/* 利用了媒体查询区间(范围内)的层叠性 */
/* 媒体查询+rem适配的方案
将屏幕的宽度分成15份 不同屏幕/份数 */
@media (min-width:0) {
/* 屏幕宽度大于等于0都是12px */
html {
font-size: 12px;
}
}
@media (min-width:320px) {
/* 屏幕宽度大于等于320都是14px */
html {
font-size: 14px;
}
}
@media (min-width:360px) {
/* 屏幕宽度大于等于360都是18px */
html {
font-size: 18px;
}
}
计算rem的值
- 以盒子宽为例
- 假如盒子的宽度为54px 屏幕分成了15份,375的屏幕宽度*
- 一份375/15=25px 1rem=25px
- 54px /25=2.16px
- 屏幕宽度为360px 1份宽度 360/15=24px
- 像素大厨 基数/份数
屏幕宽度为360px 1份宽度 360/15=24px
五、rem+媒体查询适配
- 先分多少份 10份
- 每一份宽度(1rem值的大小) ui设计稿 320px / 10 1份是32px,
- 将像素大厨的单位rem, 把基数设置为1份的大小32px
- 写媒体查询区间 屏幕宽度/10,区间从小往大写