流失布局弹性盒子布局

    科技2022-07-17  117

    流失布局

    先创建项目文件,在index.html 文件里面添加视口标签

    分析观察项目结构

    移动端项目一定要在不同尺寸的设备上面多跑跑,看看页面布局会不会发生变化。

    百分比布局,不是每一个元素的尺寸必须必须写成百分百。但是百分比布局,宽写百分比,高正常写。

    背景精灵图写法:

    先把精灵图放到ps中打开通过ctrl+alt+i 打开图像大小 约束比例选对勾把原图改小50% 假如原图大小是400400 改成200200在通过ps矩形选框工具量一下图形在 x y轴的距离 写到css里面在通过background-size: ;后面的值是缩放图形后的宽

    消除a标签在移动端 自带高光效果 -webkit-tap-highlight-color: transparent;

    dpg 是京东研发的一种图片格式,dpg是其他格式图片大小的一半。

    弹性盒子布局

    弹性盒子的基本概念:

    采用Flex布局的元素,称为Flex容器(flex container),简称”容器”。 它的所有子元素自动成为容器成员,称为Flex项目(flex item),简称”项目”。 容器默认存在两根轴:水平的主轴和垂直的交叉轴。 项目默认沿主轴排列。

    容器属性(父元素属性):

    flex-direction:属性决定主轴的方向(即项目的排列方向)        —row(默认值):主轴为水平方向,起点在左端。        —row-reverse:主轴为水平方向,起点在右端。        —column:主轴为垂直方向,起点在上沿。        —column-reverse:主轴为垂直方向,起点在下沿

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> div{ /*把div变成弹性盒子 display:flex*/ display:flex; /*排列属性*/ /*flex-direction: row;*/ /*flex-direction: row-reverse;*/ /*flex-direction: column;*/ /*flex-direction: column-reverse;*/ width: 600px; height: 300px; background: red; margin: 0 auto; } span{ width: 100px; height: 100px; background: blue; border: 1px solid yellow; } </style> </head> <body> <div> <span>1</span> <span>2</span> <span>3</span> <span>4</span> </div> </body> </html>

    flex-wrap:默认情况下,项目都排在一条线上。flex-wrap属性定义,如果一条轴线排不下,如何换行。        —nowrap(默认):不换行        —wrap:换行,第一行在上方。        —wrap-reverse:换行,第一行在下方。

    flex-flow:属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap。

    justify-content:属性定义了项目在主轴上的对齐方式。        —flex-start(默认值):左对齐        —flex-end:右对齐        —center: 居中        —space-between:两端对齐,项目之间的间隔都相等。        —space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{ margin: 0; padding: 0; } div{ /*把元素变成弹性盒子*/ display: flex; /*排列方式*/ flex-wrap: wrap; /*y轴多行对起方式*/ /*align-content: flex-start;*/ /*align-content: flex-end;*/ align-content: center; /*align-content: space-between;*/ /*align-content: space-around;*/ width: 900px; height:500px; background: red; margin: 0 auto; } span{ width:150px; height: 100px; background: blue; border: 1px solid tomato; } </style> </head> <body> <div class="a"> <span>1</span> <span>2</span> <span>3</span> <span>4</span> <span>5</span> <span>6</span> <span>7</span> <span>8</span> </div> </body> </html>

    align-items:属性定义项目在交叉轴上如何对齐(设置单行元素,多行元素没有作用)。        —flex-start:交叉轴的起点对齐。        —flex-end:交叉轴的终点对齐。        —center:交叉轴的中点对齐。        —baseline: 项目的第一行文字的基线对齐。        —stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。

    align-content:属性定义了多根轴线的对齐方式(设置多行元素,单行元素没有作用)。        —flex-start:与交叉轴的起点对齐。        —flex-end:与交叉轴的终点对齐。        —center:与交叉轴的中点对齐。        —space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。        —space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。        —stretch(默认值):轴线占满整个交叉轴。

    项目的属性(子元素属性)

    order属性定义项目的排列顺序。数值越小,排列越靠前,默认为0。 flex属性是flex-grow, flex-shrink 和 flex-basis的简写,控制子元素的大小。 align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。 flex-end baseline center stretch flex-start

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> div{ /*把父元素 变成弹性盒子*/ display: flex; width:600px; height: 500px; background: red; margin: 0 auto; } span{ /*width: 100px;*/ /*flex: 1;*/ height: 100px; background: pink; border: 1px solid yellow; } span:nth-child(1){ flex: 1; /*order: 1;*/ } span:nth-child(2){ flex: 2; /*order:3;*/ order:-10; } span:nth-child(3){ flex: 3; /*order:2;*/ order:-99; } span:nth-child(4){ flex: 4; /*order:40;*/ order:-1; } </style> </head> <body> <div> <span>1</span> <span>2</span> <span>3</span> <span>4</span> </div> </body> </html>
    Processed: 0.012, SQL: 8