CSS学习(二十二)-flexbox模型之三

本文通过实例展示了Flex布局的应用,包括如何设置容器属性实现不同方向的排列和对齐方式,特别是对flex-line-pack属性进行了详细的解释与演示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、理论:
1.flex-line-pack 堆栈伸缩行
a.使用与flex-pack 相同
b.增加stretch start/end/center/justify(平均分布)/distribute(两端保留一半的空间)/stretch(拉伸填充整个容器)
c.flex-line针对个体,flex-line-pack针对群体

二、实践:

1.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css" media="screen">
        *{
            margin: 0;
            padding: 0;
        }
        .flexbox{
            margin: 0.25em 5em;
            border:1px solid hsla(120,30%,50%,.8);
            background-color: hsla(10,80%,10%,.2);
            height: 550px;
        }
        .flexbox:nth-child(2n){
            margin-bottom: 200px;
        }
        .flexbox>div{
            border:1px solid hsla(120,30%,50%.8);
            font:bold 2em arial;
            color:#fff;
            width: 150px;
            padding: .2em;
        }
        .flexbox > div:nth-child(odd){
            background-color: hsla(120,30%,50%.8);
        }
        .flexbox > div:nth-child(even){
            background-color: hsla(120,30%,10%,.8);
        }
        .flexbox > div:last-child{
            background-color: hsla(20,10%,60%,.8);
        }
        .flexbox{
            display: -ms-flexbox;
            -ms-flex-wrap: wrap;
        }
        .flex-direction-coloumn{
            -ms-flex-direction: column;
        }
        .flex-line-pack-start{
            -ms-flex-line-pack:start;
        }
    </style>
</head>
<body>
    <div class="flexbox flex-line-pack-start">
        <div>box1</div>
        <div>box2</div>
        <div>box3</div>
        <div>box4</div>
        <div>box5</div>
        <div>box6</div>
        <div>box7</div>
        <div>box8</div>
        <div>start</div>
    </div>
    <div class="flexbox flex-line-pack-start flex-direction-coloumn">
        <div>box1</div>
        <div>box2</div>
        <div>box3</div>
        <div>box4</div>
        <div>box5</div>
        <div>box6</div>
        <div>box7</div>
        <div>box8</div>
        <div>start</div>
    </div>
</body>
</html>


### CSS `display` 属性与 Flexbox 布局 #### 定义与基本概念 在 CSS 中,`display` 属性定义了一个元素内部的内容如何布局以及它与其他元素的关系和位置。当设置 `display: flex;` 时,该元素成为弹性容器 (flex container),其子元素自动成为容器成员即弹性项目 (flex items)[^1]。 #### 主要特性 - **单维度布局**:Flexbox 提供了一种有效的方法来沿单一轴线(水平或垂直)分配空间并调整项目的大小。 - **灵活性强**:相比传统的浮动和定位方法,Flexbox 更加灵活且易于控制复杂布局中的对齐方式、顺序等问题[^2]. #### 关键属性 ##### 对于父级容器: | 属性名 | 描述 | | --- | --- | | `display` | 设置为 `flex` 后启用 Flexbox 模型 | | `flex-direction` | 控制主轴的方向,默认值为 row 表示横向排列;column 则表示纵向排列 | ##### 子项配置: | 属性名 | 描述 | | ------------ | ------------------------------------------------------------ | | `order` | 改变默认文档流中项目的前后次序 | | `flex-grow` | 当有剩余空间时,允许该项目扩展的比例 | | `flex-shrink`| 如果总宽度超过可用空间,则此比例决定缩小的程度 | | `align-self` | 单独指定某个 item 在交叉轴上的对其行为 | #### 实际应用案例 下面是一个简单的例子展示如何利用 Flexbox 创建响应式的导航栏: ```html <nav class="navbar"> <a href="#" class="nav-link">Home</a> <a href="#" class="nav-link">About Us</a> <a href="#" class="nav-link">Contact</a> </nav> <style> .navbar { display: flex; justify-content: space-around; /* 平均分布各链接 */ } @media only screen and (max-width: 768px){ .navbar{ flex-wrap: wrap; /* 小屏幕下换行显示 */ } } </style> ``` 这段代码创建了一个基于 Flexbox 的导航条,在大屏幕上会均匀分布在一行内,而在较小设备上则会折行以适应视窗尺寸变化[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值