移动适配(笔记)

一.flex 弹性布局

当我们为父盒子设为 flex 布局以后,子元素的 float、clear 和 vertical-align 属性将失效。  

总结flex布局原理: 就是通过给父盒子添加flex属性,来控制子盒子的位置和排列方式

flex布局父项常见属性

以下由6个属性是对父元素设置的:

flex-direction:设置主轴的方向

justify-content:设置主轴上的子元素排列方式

flex-wrap:设置子元素是否换行

align-content:设置侧轴上的子元素的排列方式(多行)

align-items:设置侧轴上的子元素排列方式(单行)

flex-flow:复合属性,相当于同时设置了 flex-direction 和 flex-wrap

1. flex-direction 设置主轴的方向

注意: 主轴和侧轴是会变化的,就看 flex-direction 设置谁为主轴,剩下的就是侧轴。而我们的子元素是跟着主轴来排列的

 2. justify-content 设置主轴上的子元素排列方式

 3. flex-wrap 设置子元素是否换行

 4. align-items 设置侧轴上的子元素排列方式(单行 )

 5. align-content 设置侧轴上的子元素的排列方式(多行)

6. flex-flow

flex-flow 属性是 flex-direction 和 flex-wrap 属性的复合属性

flex-flow:row wrap;

flex布局子项常见属性 

1. flex 属性 

flex 属性定义子项目分配剩余空间,用flex来表示占多少份数

.item {

flex: <number>; /* default 0 */

} 

2. align-self 控制子项自己在侧轴上的排列方式

align-self 属性允许单个项目有与其他项目不一样的对齐方式,可覆盖 align-items 属性。

默认值为 auto,表示继承父元素的 align-items 属性,如果没有父元素,则等同于 stretch。

span:nth-child(2) {

/* 设置自己在侧轴上的排列方式 */

align-self: flex-end;

}

3. order 属性定义项目的排列顺序

数值越小,排列越靠前,默认为0。

注意:和 z-index 不一样。

.item {

order: <number>;

}

背景线性渐变

background: linear-gradient(起始方向, 颜色1, 颜色2, ...);

background: -webkit-linear-gradient(left, red , blue);

background: -webkit-linear-gradient(left top, red , blue);

二.rem适配布局

1.rem 单位 

rem (root em)是一个相对单位,类似于em,em是父元素字体大小。

不同的是rem的基准相对于html元素的字体大小

比如,根元素(html)设置font-size=12px; 非根元素设置width:2rem; 则换成px表示就是24px。

rem的优势:父元素文字大小可能不一致, 但是整个页面只有一个html,可以很好来控制整个页面的元

素大小。

/* 根html 为 12px */

html {

font-size: 12px;

}

/* 此时 div 的字体大小就是 24px */

div {

font-size: 2rem;

}

2. 媒体查询 

@media 可以针对不同的屏幕尺寸设置不同的样式

@media mediatype and|not|only (media feature) {

CSS-Code;

}

用 @media 开头 注意@符号

mediatype 媒体类型

关键字 and not only

media feature 媒体特性 必须有小括号包含

2.1 mediatype 查询类型

2.2 关键字

关键字将媒体类型或多个媒体特性连接到一起做为媒体查询的条件。

and:可以将多个媒体特性连接到一起,相当于“且”的意思。

not:排除某个媒体类型,相当于“非”的意思,可以省略。

only:指定某个特定的媒体类型,可以省略。 

2.3 媒体特性

 

猜你喜欢

转载自blog.csdn.net/qq_51402804/article/details/119574989