十四、flex弹性容器属性样式2

这篇具有很好参考价值的文章主要介绍了十四、flex弹性容器属性样式2。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录:
1.准备工作
2.属性解析: align-items
3.属性解析: align-content
4.弹性元素的属性

一、准备工作

我们在前面的基础上,修改代码,把ul的高度定下来,设置800px, li的高度不定。
然后,body里面添加div.

代码如下:

<style>
    *{
      margin: 0;
      padding: 0;
      list-style: none;
    }

    ul{
      width: 800px;
      height: 800px;
      border: 10px red solid;
      /* 设置ul为弹性元素 */
      display: flex;
    }

    li{
      width: 200px;
      text-align: center;
      font-size: 28px;
      line-height: 100px;
      /* 让所有的li伸缩系数为0,即他们都不会伸缩,该超出边框的就超出 */
      flex-shrink: 0;
    }
     li:nth-child(1){
      background-color: #bfa;
    }
    li:nth-child(2){
      background-color: pink;
    }
    li:nth-child(3){
      background-color: orange;
    }
  </style>
<body>
  <ul>
    <li>1</li>
    <li>
      2
      <div>2</div>
    </li>
    <li>
      3
      <div>3</div>
      <div>3</div>
    </li>
  </ul>
  
</body>
十四、flex弹性容器属性样式2,前端,flex,属性

二、属性解析: align-items

  1. align-items
  • 元素在辅轴上如何对齐
  • 元素间的关系(比如上面的1和2, 2和3 这些元素之间的对齐方式)
  1. 可选值:
    - stretch 默认值,将元素的长度设置为相同的值

 <style>
    *{
      margin: 0;
      padding: 0;
      list-style: none;
    }

    ul{
      width: 600px;
      height: 800px;
      border: 10px red solid;
      /* 设置ul为弹性元素 */
      display: flex;
      /* 元素之间的关系 */
      align-items: stretch;
      /* 多的li进行换行 */
      flex-flow: row wrap;
    }

    li{
      width: 200px;
      text-align: center;
      font-size: 28px;
      line-height: 100px;
      /* 让所有的li伸缩系数为0,即他们都不会伸缩,该超出边框的就超出 */
      flex-shrink: 0;
    }
    li:nth-child(1){
      background-color: #bfa;
    }
    li:nth-child(2){
      background-color: pink;
    }
    li:nth-child(3){
      background-color: orange;
    }
    li:nth-child(4){
      background-color: yellow;
    }
    li:nth-child(5){
      background-color: chocolate;
    }
  </style>

<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>

这个第一行的高度一样,第二行的高度一样,这就是stretch 定义的相同的值。 是行与行之间的高度,并不是所有元素高度都一样。

本来1他内容撑开的高度很矮,设置了stretch后,他会为了匹配大家相同的高度,把自己的高度拉长
十四、flex弹性容器属性样式2,前端,flex,属性

- flex-start :元素不会拉伸,而是沿着辅轴起边对齐
比如目前我们的主轴是水平方向,辅轴就是垂直方向,所以这里的起边,就是顶部上方。

 ul{
      width: 600px;
      height: 800px;
      border: 10px red solid;
      /* 设置ul为弹性元素 */
      display: flex;
      /* 因为辅轴是纵向,所以起边就是顶部上方,因此这里控制他是每行元素顶部对齐 */
      align-items: flex-start;
      /* 多的li进行换行 */
      flex-flow: row wrap;
    }

十四、flex弹性容器属性样式2,前端,flex,属性

- flex-end :元素不会拉伸,而是沿着辅轴的终边对齐
同理

 ul{
      width: 600px;
      height: 800px;
      border: 10px red solid;
      /* 设置ul为弹性元素 */
      display: flex;
      /* 因为辅轴是纵向,所以终边就是底部,因此这里控制他是每行元素底部对齐 */
      align-items: flex-end;
      /* 多的li进行换行 */
      flex-flow: row wrap;
    }

十四、flex弹性容器属性样式2,前端,flex,属性

- center :元素不会拉伸,而是居中对齐
同理

 ul{
      width: 600px;
      height: 800px;
      border: 10px red solid;
      /* 设置ul为弹性元素 */
      display: flex;
      /* 因为辅轴是纵向,每行元素的中心对齐*/
      align-items: center;
      /* 多的li进行换行 */
      flex-flow: row wrap;
    }

十四、flex弹性容器属性样式2,前端,flex,属性

应用:需求是要求元素li,在元素ul里面垂直水平,双方向对齐居中。

  ul{
      width: 600px;
      height: 800px;
      border: 10px red solid;
      /* 设置ul为弹性元素 */
      display: flex;

      /* ul里面的元素li,水平垂直方向都居中,关键是这两行代码。justify-content: center; align-items: center;*/
      justify-content: center;
      align-items: center;

      /* 多的li进行换行 */
      flex-flow: row wrap;
    }

    li{
      width: 200px;
      text-align: center;
      font-size: 28px;
      line-height: 100px;
      /* 让所有的li伸缩系数为0,即他们都不会伸缩,该超出边框的就超出 */
      flex-shrink: 0;
    }
  <ul>
    <li>1</li>
  </ul>
十四、flex弹性容器属性样式2,前端,flex,属性

- baseline :基线对齐 (用的不多,主要针对文字,沿着文字的基线对齐)

三、属性解析: align-content

  • align-content:设置辅轴上的空白空间分布。

我们知道主轴上有空白空间,辅轴上也有空白空间。
align-items是控制横向,元素之间的对齐的, 对应的align-content是对齐元素之间的空白的。

十四、flex弹性容器属性样式2,前端,flex,属性
  • 可选值:

- align-content: center; :让辅轴上下的空白相等,元素在中间

<style>
    *{
      margin: 0;
      padding: 0;
      list-style: none;
    }

    ul{
      width: 600px;
      height: 800px;
      border: 10px red solid;
      /* 设置ul为弹性元素 */
      display: flex;

      /* 辅轴上,元素之间是顶部对齐 */
      align-items: flex-start;
      /* 辅轴上,上下空白相等 */
      align-content: center;

      /* 多的li进行换行 */
      flex-flow: row wrap;
    }

    li{
      width: 200px;
      text-align: center;
      font-size: 28px;
      line-height: 100px;
      /* 让所有的li伸缩系数为0,即他们都不会伸缩,该超出边框的就超出 */
      flex-shrink: 0;
    }
    li:nth-child(1){
      background-color: #bfa;
    }
    li:nth-child(2){
      background-color: pink;
    }
    li:nth-child(3){
      background-color: orange;
    }
    li:nth-child(4){
      background-color: yellow;
    }
    li:nth-child(5){
      background-color: chocolate;
    }
  </style>
<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>
十四、flex弹性容器属性样式2,前端,flex,属性

- align-content: flex-start; :让辅轴上空白在下面,元素在辅轴的上方

十四、flex弹性容器属性样式2,前端,flex,属性

- align-content: flex-end :让辅轴上空白在上方,元素在辅轴的下方

十四、flex弹性容器属性样式2,前端,flex,属性

- align-content: space-around :让辅轴上空白在环顾在每行的上下两边

十四、flex弹性容器属性样式2,前端,flex,属性

- align-content: space-between :让辅轴上空白在中间

十四、flex弹性容器属性样式2,前端,flex,属性

总的来说,就是通过指定空白的位置,来对齐两行元素。

十四、flex弹性容器属性样式2,前端,flex,属性

四、弹性元素的属性

  • align-self:用来覆盖当前弹性元素上的align-items

本来我们在ul 统一设置了 align-items: flex-start; 也就是说ul下的子元素li都有这个属性,但是现在我想针对第一个li,单独设置他的align-items, 此时我们就用align-self 来覆盖。文章来源地址https://www.toymoban.com/news/detail-554483.html

  • 关键代码:
  li:nth-child(1){
      /* align-self:用来覆盖当前弹性元素上的align-items
        这li的第一个元素,设置了这个后,会把原来设置过的align-items样式覆盖掉
      */
      
      align-self:stretch;
    }
  • 完整代码:
<style>
    *{
      margin: 0;
      padding: 0;
      list-style: none;
    }

    ul{
      width: 600px;
      height: 800px;
      border: 10px red solid;
      /* 设置ul为弹性元素 */
      display: flex;

      /* 辅轴上,元素之间是顶部对齐 */
      align-items: flex-start;
   
      align-content: space-between;

      /* 多的li进行换行 */
      flex-flow: row wrap;
    }

    li{
      width: 200px;
      text-align: center;
      font-size: 28px;
      line-height: 100px;
      /* 让所有的li伸缩系数为0,即他们都不会伸缩,该超出边框的就超出 */
      flex-shrink: 0;
    }
    li:nth-child(1){
        /* align-self:用来覆盖当前弹性元素上的align-items
        这li的第一个元素,设置了这个后,会把原来设置过的align-items样式覆盖掉
      */
      align-self: stretch;
      background-color: #bfa;
    }
    li:nth-child(2){
      background-color: pink;
    }
    li:nth-child(3){
      background-color: orange;
    }
    li:nth-child(4){
      background-color: yellow;
    }
    li:nth-child(5){
      background-color: chocolate;
    }
  </style>
<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>
十四、flex弹性容器属性样式2,前端,flex,属性

到了这里,关于十四、flex弹性容器属性样式2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 9-web前端 flex弹性布局

    1、flex弹性布局 设置方式:给父元素设置 display: flex,子元素可以自动挤压或拉伸   组成部分:     弹性容器     弹性盒子     主轴:默认在水平方向     侧轴 / 交叉轴:默认在垂直方向   例如:   2、主轴对齐方式   属性名:justify-content     属性值 效果 flex

    2024年02月08日
    浏览(45)
  • 前端弹性布局神器display:flex【转】

    本文内容摘自博文 :https://www.cnblogs.com/qingchunshiguang/p/8011103.html、https://blog.csdn.net/ababab12345/article/details/119612918 在进行网页前端设计时,需要垂直居中显示文本,但CSS似乎没有明确的垂直居中的代码方法,由于目前的页面不再考虑以前的浏览器了,因此采用CSS3的display:flex方法

    2024年02月08日
    浏览(59)
  • 【鸿蒙软件开发】ArkUI之容器组件Counter(计数器组件)、Flex(弹性布局)

    Counter容器组件:计数器组件,提供相应的增加或者减少的计数操作。 Flex容器组件:以弹性方式布局子组件的容器组件。 计数器组件,提供相应的增加或者减少的计数操作。 说明 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本

    2024年02月06日
    浏览(43)
  • 前端小案例3:Flex弹性布局行内元素宽度自适应

    项目背景:需要在一行上展示空调设备的三个模式(制冷、制热、通风)或者两个模式(制冷、制热);因为不同产品的模式数量不同,因此需要让模式按钮的宽度自适应,有两个模式时,单个模式宽度占据50%;三模式时,宽度占据33.3%。 可以使用Grid和Flex 弹性布局实现。

    2024年02月04日
    浏览(44)
  • web前端之使用弹性和外边距进行网页布局、非常有用的小技巧、flex、margin、auto

    图中效果只需要flex和margin便可以实现。 1、d_f: display: flex; 2、fw_w: flex-wrap: wrap; 3、m_a: margin: auto; 4、ml_a: margin-left: auto; 5、mr_a: margin-right: auto; 3、item类名比较特殊,所以单独定义,涉及到变量,不属于公共样式 4、其他类名基本是见名知意,不做过多叙述

    2024年02月20日
    浏览(55)
  • elementui前端flex布局兼容IE10浏览器常用属性使用

    IE10以下完全不兼容flex,IE10部分兼容,使用时对应chrome的用法为如下所示: 注:任何的版本的 Internet Explorer (包括 IE8)都不支持属性值 inherit。

    2024年02月13日
    浏览(36)
  • 【前端】CSS(引入方式+选择器+常用元素属性+盒模型+弹性布局)

    层叠样式表(Cascading Style Sheets) 对元素位置的排版进行精确控制,实现结构和样式的分离 CSS 控制页面的展示效果 HTML决定页面的结构 选择器+{一条/N条声明} 选择器:要修改谁 声明:具体要修改什么内容。声明的属性是键值对,用分号区分,键和值用: 通常情况下,把style放

    2024年04月15日
    浏览(51)
  • flex 弹性布局

    任何一个容器都可以指定为 Flex 布局。 行内元素也可以使用 Flex 布局。 注意 :设为 Flex 布局以后,子元素的 float 、 clear 和 vertical-align 属性将失效。 采用 Flex 布局的元素,称为 Flex 容器(flex container),简称”容器”。它的所有子元素自动成为容器成员,称为 Flex 项目(

    2024年02月14日
    浏览(45)
  • Flex 弹性盒子布局

    可以少去理解一些不必要的概念,而多去思考为什么会有这样的东西,它解决了什么问题,或者它的运行机制是什么? Flex 是 Flexible Box 的缩写,意为“弹性布局”,用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为 Flex 布局。比如: 容器、项目的理解? 采用

    2024年01月17日
    浏览(57)
  • 【css】flex弹性盒子

    flex 弹性盒子 在 CSS 中, display: flex 是一种布局模型,用于创建弹性盒子(flexbox)。它定义了一个容器元素及其子元素的布局方式,使其能够更灵活地调整和排列内容。 使用 display: flex 可以将一个容器元素转换为弹性盒子,并控制其中子元素的排列方式、对齐方式以及伸缩行

    2024年02月10日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包