CSS10:弹性盒模型(flex box)

定义

弹性盒子是CSS3的一种新的布局模式

CSS3弹性盒是一种当页面需要适应不同屏幕大小以及设备类型确保元素拥有恰当的行为的布局方式。

引入弹性盒布局模型的目的是提供一种更加有效的方式来对一个容器中的子元素进行排列、对齐和分配空白空间。

CSS弹性盒内容

弹性盒子由弹性容器和弹性子元素构成。

弹性容器通过设置display属性的值为flex将其定义为弹性容器。

弹性容器内包含了一个或多个弹性子元素。

弹性容器外及弹性子元素内是正常渲染的,弹性盒子只是定义了弹性子元素如何在弹性容器内布局。

默认弹性盒里内容横向摆放

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .container{
            width: 400px;
            height: 400px;
            background-color: aquamarine;
        }
        .box1{
            width: 100px;
            height: 100px;
            background-color: red;
        }
        
        .box2{
            width: 100px;
            height: 100px;
            background-color: green;
        }
        
        .box3{
            width: 100px;
            height: 100px;
            background-color: blue;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="box1"></div>
        <div class="box2"></div>
        <div class="box3"></div>
        <div class="box4"></div>
    </div>
</body>
</html>

在.container中加上display: flex;

父元素上的属性

display属性

display:flex; 开启弹性盒,属性设置后子元素默认水平排列。

flex-direction

定义:指定了弹性子元素在父容器中的位置。

语法

flex-direction:row|row-reverse|column|column-reverse

1、row:横向从左到右排列(左对齐),默认的排列方式。

2、row-reverse:反转横向排列(右对齐,从后往前排,最后一项排在最前面)

3、column:纵向排列

4、column-reverse:反转纵向排列,从后往前排,最后一排顶在上面

.container{
            width: 400px;
            height: 400px;
            background-color: aquamarine;
            display: flex;
            flex-direction: column-reverse;
        }

justify-content属性 

定义:应用在弹性容器上,把弹性项沿着弹性容器的主轴线对齐。

语法

justify-content:flex-start | flex-end | center

1、flex-start:弹性项目向行头紧挨着填充。这个是默认值。第一个弹性项的main-start外边距边线被放置在该行的main-start边线,而后续弹性项依次平齐摆放。

2、 flex-end:弹性项目向行尾紧挨着填充。第一个弹性项的main-end外边距边线被放置在该行的main-end边线,而后续弹性项依次平齐摆放。

3、center:弹性项目居中紧挨着填充。(如果剩余的自由空间是负的,则弹性项目将在两个方向上同时溢出)

        .container{
            width: 400px;
            height: 400px;
            background-color: aquamarine;
            display: flex;
            flex-direction: column;
            justify-content: center;
        }

align-items属性

定义:设置或检索弹性盒子元素在侧轴(纵轴方向)上的对齐方式

语法

align-items: center | flex-start | flex-end

1、flex-start:弹性盒子元素的纵轴起始位置的边界紧靠住该行的侧轴起始边界

2、 flex-end:弹性盒子元素的纵轴起始位置的边界紧靠住该行的侧轴结束边界

3、center:弹性盒子元素在该行的侧轴(纵轴)上居中放置。(如果该行的尺寸小于弹性盒子元素的尺寸,则会向两个方向溢出相同的长度)

.container{
            width: 400px;
            height: 400px;
            background-color: aquamarine;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
        }

 子元素上的属性

flex-grow

根据弹性盒子元素所设置的元素所设置的扩展因子作为比率来分配剩余空间。

默认为0,即如果存在剩余空间,也不放大。

如果只有一个子元素设置,那么按扩展因子转化的百分比对其分配剩余空间。0.1即10%,1即100%,超出按100%

.box1{
            width: 100px;
            height: 100px;
            background-color: red;
            flex: 0.2;
        }
        
        .box2{
            width: 100px;
            height: 100px;
            background-color: green;
            flex: 0.6;
        }
        
        .box3{
            width: 100px;
            height: 100px;
            background-color: blue;
            flex: 0.2;
        }


        /* 用flex也可以 */
        /* .box1{
            width: 100px;
            height: 100px;
            background-color: red;
            flex-grow: 1;
        }
        
        .box2{
            width: 100px;
            height: 100px;
            background-color: green;
            flex-grow: 3;
        }
        
        .box3{
            width: 100px;
            height: 100px;
            background-color: blue;
            flex-grow: 1;
        } */

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: `display:inline-flex` 是 CSS 中的一个属性值,它用于设置一个元素以行内弹性盒的形式进行布局,即该元素会按照弹性模型的方式进行排列,但是它会像行内元素一样排列。 使用 `display:inline-flex` 可以让元素具有弹性盒子的一些特性,例如自适应宽度、自动换行等,同时也可以设置 flex 容器的属性,如 `justify-content` 和 `align-items` 等。这样可以方便地进行元素的排列和布局。 需要注意的是,`display:inline-flex` 是 CSS3 中的一个新特性,因此在一些旧的浏览器上可能不支持。如果需要兼容性更好的方案,可以考虑使用 `display:-webkit-inline-box` 或 `display:-moz-inline-box` 来实现类似的效果。 ### 回答2: CSS的display:inline-flex属性定义了一个内联弹性盒子。 首先,我们要了解弹性盒子(flexbox)。弹性盒子是一种用于布局的高度灵活的容器。它可以容纳和控制一组元素的排列方式,以便它们能够适应不同的屏幕尺寸和设备。 默认情况下,弹性盒子的display属性值为"flex",这意味着该容器将作为块级元素显示。当我们将display属性值设为"inline-flex"时,弹性盒子将以内联元素的形式显示。 内联元素与行内元素类似,它们在同一行内进行排列,不会独占一行。与块级元素(如div)不同,内联元素不会独占一行空间。 使用display:inline-flex的主要优势是可以在页面中创建水平布局,而不会改变容器的块级特性。也就是说,它会将弹性盒子嵌入到文本流中,而不是使其单独占据一行。这使得我们可以将弹性盒子与其他文本元素结合使用,实现更灵活的布局效果。 需要注意的是,内联弹性盒子只对直接子元素起作用。因此,如果想要控制盒子内部的子元素,可以使用flex属性或其他相关的弹性盒子属性,如flex-direction、align-items、justify-content等。 总结来说,display:inline-flex属性可以将弹性盒子以内联元素的方式显示,这使得我们可以在水平布局中创建灵活的布局效果。这在某些情况下对于实现特定的页面布局非常有用。 ### 回答3: CSS的display:inline-flex是一种布局属性,用于在元素内部创建一个行内元素,并且使这个元素的子元素能够使用flexbox布局。 使用display:inline-flex可以使元素的子元素按照flexbox的规则进行布局,这样可以实现更灵活的布局效果。同时,由于它是行内元素,所以多个元素可以在同一行上进行布局。 与display:flex相比,display:inline-flex的主要区别在于前者会将元素的display属性设置为flex,而后者会将元素的display属性设置为inline-flex。 使用display:inline-flex时,可以通过设置相应的flex属性来控制子元素的布局方式,如设置flex-direction属性来控制子元素的排列方向(如水平方向或垂直方向)、设置flex-wrap属性来控制子元素是否换行,以及设置justify-content属性来控制子元素在主轴上的对齐方式等。 总结来说,display:inline-flex是一种常用的CSS属性,用于创建行内元素的flexbox布局。它可以在元素内部使用flexbox的相关属性,实现更灵活且具有响应式的布局效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值