美文网首页
弹性盒模型

弹性盒模型

作者: 一刀一个小黄鱼 | 来源:发表于2017-04-23 22:01 被阅读108次

弹性盒模型:css3引入了新的盒子模型。官方称为CSS Flexible Box Layout Module,用于实现容器里项目的对齐、方向、排序(即使在项目大小位置、动态生成的情况)

弹性盒模型写法:display: flex; 写在父级元素上,使下面的子级产生变化
弹性盒模型需要了解什么是主轴什么是侧轴,下面有一张图

image002.jpg

主轴就是决定元素是怎样的排列方式 水平排列还是垂直排列

flex-direction:主轴方向设置(row/row-reverse/column/column-reverse)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
#box {
    height: 500px;
    border: 2px solid #000;
    display: flex;
    flex-direction:row;
}
#box div {
    width: 100px;
    height: 100px;
    background: Red;
    border: 2px solid #000;
    color: #fff;
}

</style>
</head>
<body>
<div id="box">
    <div>1</div>
    <div>2</div>
    <div>3</div>
    <div>4</div>\
</div>
</body>
</html>

row(默认值):主轴为水平方向,起点在左端。
row-reverse:主轴为水平方向,起点在右端。
column:主轴为垂直方向,起点在上沿。
column-reverse:主轴为垂直方向,起点在下沿。

1.png
justify-content:主轴对齐(flex-start/flex-end/center/space-between/space-around)

flex-start(默认值):左对齐
flex-end:右对齐
center: 居中
space-between:两端对齐,项目之间的间隔都相等。
space-around:每个项目两侧的间隔相等。


2.png
align-items: 侧轴对齐(flex-start/flex-end/center)

flex-start:交叉轴的起点对齐。
flex-end:交叉轴的终点对齐。
center:交叉轴的中点对齐。
baseline: 项目的第一行文字的基线对齐。
stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。

3.png
flex-wrap: 换行(nowrap/wrap/wrap-reverse);

nowrap(默认):不换行。当子元素超出边框也不会换行继续显示,元素没有设置宽度,元素会平均分配宽度
wrap:换行,第一行在上方。

bg2015071008.jpg

wrap-reverse:换行,第一行在下方。

bg2015071009.jpg

主轴为row或者row-reverse 默认侧轴为 从上到下 如果添加了wrap-reverse 侧轴方向为从下到上
主轴为column或者column-reverse 默认侧轴为 从左到右 如果添加了wrap-reverse 侧轴方向为从右到左


align-content 行对齐:(flex-start/flex-end/center/space-between/space-around)

效果和侧轴对齐用法一样,有多行的情况下用行对齐,单行的情况则用侧对齐


子元素的样式设置

flex: number|auto|none;

元素的尺寸= 元素的flex/flex之和*父级剩余宽度

#box {
    height: 200px;
    border: 2px solid #000;
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
}
#box div {
    width: 100px;
    height: 100px;
    background: Red;
    border: 2px solid #000;
    color: #fff;
    /* flex: auto; */
}
#box div:nth-of-type(1){
    flex: 1;
}
#box div:nth-of-type(2){
    flex: 2;
}
#box div:nth-of-type(3){
    flex: 3;
}
#box div:nth-of-type(4){
    flex: 4;
}
#box div:nth-of-type(5){
    flex: 5;
    order:-1
}

每个元素的显示宽度

QQ截图20170423214850.png
order 排序: 数值越大越往后排

默认值 0,可接受负值

align-self( auto | flex-start | flex-end | center)
bg2015071016.png

以上就是弹性盒模型的用法,不过除了flex 因为兼容性的原因 还有老版的写法 需要在不同的内核下添加前缀来使用

display:box; display:inline-box;

老版本在使用的时候需要加前缀:display: -webkit-box;
内嵌不会像新版变成块级,没有换行 块级元素在一行显示
写法不一样外 下面的功能对比新版都是差不多的
box-orient 定义主轴方向 (horizontal|vertical)
box-direction 定义元素的排列顺序(normal|reverse )
box-pack: 主轴方向富裕空间管理(start|center|end|justify )
box-align: 侧轴(垂直于主轴的方向)方向富裕空间管理(start|center|end)
box-flex 定义子元素的弹性尺寸
box-ordinal-group 定义子元素的排列顺序
1.最小值1
2.默认值大小为1
3.数值越大排列越靠后

-end-

相关文章

  • CSS3弹性盒子

    弹性盒模型 弹性盒模型是CSS3新增的属性,设置display属性值为flex的元素为弹性盒模型对象。弹性盒子由弹...

  • flex 弹性布局盒模型

    flex 弹性布局盒模型 设置弹性盒模型 display:flex (新版) display:-webkit-b...

  • 弹性盒模型

    弹性盒模型 display:flex 设置弹性盒模型 flex-direction 设置主轴方向: ju...

  • 弹性盒子

    ● 怪异盒模型(ie7以下) ● 新版盒模型 ○ display:flex设置为弹性盒 ○ ...

  • flex弹性盒模型

    Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。 弹性盒模型主要...

  • 关于flex弹性盒模型布局的详细介绍

    Flex是Flexible Box的缩写,意为“弹性布局”,用来为盒模型提供最大的灵活性。弹性盒模型(flexib...

  • 【基础教学】教大家如何使用怪异盒

    ● 怪异盒模型(ie7以下) ● 新版盒模型 ○ display:flex设置为弹性盒 ○ flex-direct...

  • React-Native - FlexBox布局

    弹性盒模型(The Flexible Box Module),又叫Flexbox,意为“弹性布局”,旨在通过弹性的...

  • 弹性盒模型

    弹性盒模型,不兼容,w3c目前还没有标准化,需要加浏览器内核前缀 如果想要搭建弹性盒模型,首先要在父级建立弹性盒模...

  • 弹性盒模型

    设置在父元素上的属性 一、给父元素设置display:flex; display:inline-flex; 1、所...

网友评论

      本文标题:弹性盒模型

      本文链接:https://www.haomeiwen.com/subject/qegyzttx.html