CSS3【display: flex;】与【align-content: (wrap 模式下堆栈排列);】的使用

简介: CSS3【display: flex;】与【align-content: (wrap 模式下堆栈排列);】的使用
  • align-content 简介
    堆栈排列,可对应用 flex-wrap: wrap 后产生的换行进行控制,包括 flex-startflex-endcenterspace-betweenspace-aroundstretch
  • align-content 使用
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    * {
      margin: 0;
      padding: 0;
      list-style: none;
    }
    body {
      background-color: #eee;
      font-size: 22px;
    }
    h3 {
      margin: 10px;
      font-weight: normal;
    }
    section {
      width: 1000px;
      margin: 0 auto;
    }
    ul {
      background-color: #fff;
      border: 1px solid #ccc;
      height: 700px;
    }
    ul li {
      width: 200px;
      height: 200px;
      background-color: pink;
      margin: 10px;
    }
    section:nth-child(1) ul {
      display: flex;
      /* 这个换行是必须的,align-content 才会生效 */
      flex-wrap: wrap;
      /* align-content 是基于 flex-wrap: wrap; 才可以使用的属性 */
      align-content: flex-start;
    }
    section:nth-child(2) ul {
      display: flex;
      /* 这个换行是必须的,align-content 才会生效 */
      flex-wrap: wrap;
      /* align-content 是基于 flex-wrap: wrap; 才可以使用的属性 */
      align-content: flex-end;
    }
    section:nth-child(3) ul {
      display: flex;
      /* 这个换行是必须的,align-content 才会生效 */
      flex-wrap: wrap;
      align-items: flex-end;
    }
    section:nth-child(4) ul {
      display: flex;
      /* 这个换行是必须的,align-content 才会生效 */
      flex-wrap: wrap;
      /* align-content 是基于 flex-wrap: wrap; 才可以使用的属性 */
      align-content: center;
    }
    section:nth-child(5) ul {
      display: flex;
      /* 这个换行是必须的,align-content 才会生效 */
      flex-wrap: wrap;
      /* align-content 是基于 flex-wrap: wrap; 才可以使用的属性 */
      align-content: space-around;
    }
    section:nth-child(6) ul {
      display: flex;
      /* 这个换行是必须的,align-content 才会生效 */
      flex-wrap: wrap;
      /* align-content 是基于 flex-wrap: wrap; 才可以使用的属性 */
      align-content: space-between;
    }
    section:nth-child(7) ul {
      display: flex;
      /* 这个换行是必须的,align-content 才会生效 */
      flex-wrap: wrap;
      /* align-content 是基于 flex-wrap: wrap; 才可以使用的属性 */
      align-content: stretch;
    }
    .stretch li {
      height: auto;
    }
    section:nth-child(8) ul {
      display: flex;
      /* 这个换行是必须的,align-content 才会生效 */
      flex-wrap: wrap;
      /* align-content 是基于 flex-wrap: wrap; 才可以使用的属性 */
      align-content: stretch;
    }
  </style>
</head>
<body>
  <section>
    <h3>align-content: flex-start;</h3>
    <ul>
      <li>1</li>
      <li>2</li>
      <li>3</li>
      <li>4</li>
      <li>5</li>
      <li>6</li>
    </ul>
  </section>
  <section>
    <h3>align-content: flex-end;</h3>
    <ul>
      <li>1</li>
      <li>2</li>
      <li>3</li>
      <li>4</li>
      <li>5</li>
      <li>6</li>
    </ul>
  </section>
  <section>
    <h3>align-items: flex-end; 可以比较一下上面 align-content: flex-end; 的效果,会发现行两者间距一个属于弹性间距一个会按着css设置间距来,两者的其他属性也是这样 </h3>
    <ul>
      <li>1</li>
      <li>2</li>
      <li>3</li>
      <li>4</li>
      <li>5</li>
      <li>6</li>
    </ul>
  </section>
  <section>
    <h3>align-content: center;</h3>
    <ul>
      <li>1</li>
      <li>2</li>
      <li>3</li>
      <li>4</li>
      <li>5</li>
      <li>6</li>
    </ul>
  </section>
  <section>
    <h3>align-content: space-around; 平均分摊空间,以这两行举例,行高一样,间距一样,中间行间距高,是因为有第一行的底部跟第二行的顶部间距</h3>
    <ul>
      <li>1</li>
      <li>2</li>
      <li>3</li>
      <li>4</li>
      <li>5</li>
      <li>6</li>
    </ul>
  </section>
  <section>
    <h3>align-content: space-between; 两端对齐</h3>
    <ul>
      <li>1</li>
      <li>2</li>
      <li>3</li>
      <li>4</li>
      <li>5</li>
      <li>6</li>
    </ul>
  </section>
  <section>
    <h3>align-content: stretch; 拉伸</h3>
    <ul class="stretch">
      <li>1</li>
      <li>2</li>
      <li>3</li>
      <li>4</li>
      <li>5</li>
      <li>6</li>
    </ul>
  </section>
  <section>
    <h3>align-content: stretch; 拉伸, 高度不设置 auto 状态下的样子</h3>
    <ul>
      <li>1</li>
      <li>2</li>
      <li>3</li>
      <li>4</li>
      <li>5</li>
      <li>6</li>
    </ul>
  </section>
</body>
</html>
  • demo 效果:






相关文章
|
1月前
|
UED 开发者 容器
【专栏】Flexbox是CSS3的全新布局模式,提供灵活响应式的页面设计
【4月更文挑战第27天】Flexbox是CSS3的全新布局模式,提供灵活响应式的页面设计。其特点包括灵活性、响应式和易理解,通过主轴和交叉轴控制元素排列对齐。核心概念有容器和项目,常用于导航栏、卡片布局、响应式设计、表格和表单布局。关键属性如flex-direction定义主轴方向,justify-content和align-items控制对齐,flex属性调整项目伸缩,order改变排序。在实践中,要关注响应式、代码维护和浏览器兼容性,以优化布局和用户体验。
|
1月前
|
前端开发 开发者 容器
彻底学会CSS 弹性布局flex
【4月更文挑战第1天】 彻底学会CSS 弹性布局flex
29 0
|
18天前
|
前端开发
Web网页制作-知识点(4)——CSS盒子模型、弹性盒模型(flex box)、文档流、浮动、清除浮动、定位、圆角、阴影二
Web网页制作-知识点(4)——CSS盒子模型、弹性盒模型(flex box)、文档流、浮动、清除浮动、定位、圆角、阴影二
19 0
|
18天前
|
前端开发 容器
Web网页制作-知识点(4)——CSS盒子模型、弹性盒模型(flex box)、文档流、浮动、清除浮动、定位、圆角、阴影(一)
Web网页制作-知识点(4)——CSS盒子模型、弹性盒模型(flex box)、文档流、浮动、清除浮动、定位、圆角、阴影一
27 0
|
1月前
|
前端开发
css flex布局两个元素水平居中垂直居中
css flex布局两个元素水平居中垂直居中
27 1
|
1月前
|
前端开发 开发者 UED
深入理解CSS属性“flex:1”的奥秘
深入理解CSS属性“flex:1”的奥秘
|
1月前
|
编解码 前端开发 iOS开发
前端开发入门笔记(八)CSS3属性详解:动画详解+Flex布局图文详解+Web字体
前端开发入门笔记(八)CSS3属性详解:动画详解+Flex布局图文详解+Web字体
68 1
|
1月前
|
Web App开发 存储 前端开发
【JavaEE初阶】 CSS相关属性,元素显示模式,盒模型,弹性布局,Chrome 调试工具||相关讲解
【JavaEE初阶】 CSS相关属性,元素显示模式,盒模型,弹性布局,Chrome 调试工具||相关讲解
|
Web App开发 容器
CSS3,弹性盒Flex布局
2009年,W3C提出了一种新的方案----Flex布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。
1021 0
|
3天前
|
前端开发
HTML+CSS练习小项目——百叶窗
HTML+CSS练习小项目——百叶窗