前端学习笔记93-弹性容器上的样式

<!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>
        *{
            margin: 0;
            padding: 0;
            list-style: none;
        }
        ul{
            width: 500px;
            border: 10px red solid;
            display: flex;
        }
        li{
            width: 200px;
            height: 200px;
            background-color: #bfa;
            font-size: 50px;
            text-align: center;
            line-height: 100px;
            flex-shrink: 0;
        }
        li:nth-child(1){
            
        }
        li:nth-child(2){
            background-color: pink;
            
        }
        li:nth-child(3){
            background-color: orange;
            
        }
    </style>
</head>
<body>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
    </ul>
</body>
</html>

在这里插入图片描述

flex-wrap

设置弹性元素是否在弹性容器中自动换行
可选值:
 nowrap:默认值,不自动换行
 wrap:元素沿着侧轴方向自动换行
 wrap-reverse:元素沿着侧轴反方向换行

        ul{
            width: 500px;
            border: 10px red solid;
            display: flex;
            flex-wrap:wrap-reverse;
        }

在这里插入图片描述

flex-flow

这个是wrap和direction的简写属性,没有顺序要求。

justify-content

设置分配主轴上的空白空间的分配
可选值:
 flex-start:元素沿着主轴起边排列
 flex-end:元素沿着主轴终边排列
 center:元素居中排列
 space-around:空白分布到元素两侧

        ul{
            width: 800px;
            border: 10px red solid;
            display: flex;
            justify-content: space-around;
        }

在这里插入图片描述
 space-evenly:空白分布到元素的单侧。与上一个的区别在于上一个是每个元素的两边都有空白,导致整体的两端空白比较窄。

        ul{
            width: 800px;
            border: 10px red solid;
            display: flex;
            justify-content: space-evenly;
        }

在这里插入图片描述
 space-between:空白均匀分布到元素间(两端没有空白)
 center:元素水平居中。

align-items

先调整下代码

<!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>
        *{
            margin: 0;
            padding: 0;
            list-style: none;
        }
        ul{
            width: 600px;
            height: 800px;
            border: 10px red solid;
            display: flex;

        }
        li{
            width: 200px;
            background-color: #bfa;
            font-size: 50px;
            text-align: center;
            line-height: 100px;
            flex-shrink: 0;
        }
        li:nth-child(1){
            
        }
        li:nth-child(2){
            background-color: pink;
            
        }
        li:nth-child(3){
            background-color: orange;
            
        }
    </style>
</head>
<body>
    <ul>
        <li>1</li>
        <li>2
            <div>2</div>
        </li>
        <li>3
            <div>3</div>
            <div>3</div>
        </li>
    </ul>
</body>
</html>

在这里插入图片描述

这个样式设设置元素间在侧轴上如何对齐。
可选值:
 stretch,默认值,使元素长度一样

<!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>
        *{
            margin: 0;
            padding: 0;
            list-style: none;
        }
        ul{
            width: 600px;
            height: 800px;
            border: 10px red solid;
            display: flex;
            align-items: stretch;
            flex-flow: row wrap;
        }
        li{
            width: 200px;
            background-color: #bfa;
            font-size: 50px;
            text-align: center;
            line-height: 100px;
            flex-shrink: 0;
        }
        li:nth-child(1){
            
        }
        li:nth-child(2){
            background-color: pink;
            
        }
        li:nth-child(3){
            background-color: orange;
            
        }
    </style>
</head>
<body>

    <ul>
        <li>1</li>
        <li>
            2
           <div>2</div>
        </li>
        <li>
            3
            <div>3</div>
            <div>3</div>
       </li>

       <li>1</li>

       <li>
               2
              <div>2</div>
           </li>
    </ul>
</body>
</html>

在这里插入图片描述
这里我多加了两个li,从结果可以看到,同一行的是长度一致的,不同行的则不一定。
 flex-start:元素不会拉伸,沿着侧轴起边对齐

        ul{
            width: 600px;
            height: 800px;
            border: 10px red solid;
            display: flex;
            align-items: flex-start;
            flex-flow: row wrap;
        }

在这里插入图片描述
 flex-end:终边对齐
在这里插入图片描述

 center 居中对齐
在这里插入图片描述

元素居中

让元素沿着主轴和侧轴都居中即可。

<!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>
        *{
            margin: 0;
            padding: 0;
            list-style: none;
        }
        ul{
            width: 600px;
            height: 800px;
            border: 10px red solid;
            display: flex;
            align-items: center;
            justify-content: center;
        }
        li{
            width: 200px;
            background-color: #bfa;
            font-size: 50px;
            text-align: center;
            line-height: 100px;
            flex-shrink: 0;
        }

    </style>
</head>
<body>

    <ul>
        <li>1</li>

    </ul>
</body>
</html>

在这里插入图片描述

align-content

与justify-content类似,只是这个是相对侧轴的,所以不做详细描述。

align-self

用来覆盖当前弹性元素的align-item是,写在弹性元素里。

        li:nth-child(1){
            align-self: stretch;
        }

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小欣CZX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值