CSS3 【display: flex;】与【align-self: 可覆盖父元素设置的algin-items;】的使用

136 阅读1分钟
  • align-self 简介:

    可覆盖父元素设置的 algin-items,包括 flex-startflex-endcenterstretch

  • align-self 使用:

    <!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: 400px;
        }
        ul li {
          width: 200px;
          height: 200px;
          background-color: pink;
          margin: 10px;
        }
        section:nth-child(1) ul {
          display: flex;
          /* 侧轴 相当于 垂直方向 */
          /* 侧轴对齐方式:从侧轴的开始方向对齐,默认从上到下,
             第一排放不下就往下排,还有默认不会在一行放不下的时候自动往下排,
             需要配合 flex-wrap: wrap; 才会自动换行  
          */
          align-items: center;
        }
        section:nth-child(1) ul li:nth-child(1) {
          align-self: stretch;
                height: auto;
        }
        section:nth-child(2) ul {
          display: flex;
          align-items: flex-start;
        }
        section:nth-child(2) ul li:nth-child(2) {
          align-self: flex-end;
        }
      </style>
    </head>
    <body>
      <section>
        <h3>align-items: center; - align-self: stretch;</h3>
        <ul>
          <li>1</li>
          <li>2</li>
          <li>3</li>
        </ul>
      </section>
      <section>
        <h3>align-self: flex-start; - align-self: flex-end; </h3>
        <ul>
          <li>1</li>
          <li>2</li>
          <li>3</li>
        </ul>
      </section>
    </body>
    </html>
    
  • demo 效果: