flex實現三個div上中下布局


面試中遇到個樣式題,就是用flex實現三個長寬相同div的布局,第一個在左上角,第二個水平垂直居中,第三個在右下角

開始還以為要用上中下三個父節點分別包住三個小div,分別設置三個父節點的justify-content屬性為flex-start、center、flex-end,再設置align-items屬性為flex-start、center、flex-end來實現

后來發現,還有更快的方法,就是

 1 <html>
 2     <body>
 3         <div class="content">
 4             <div class="d1">div1</div>
 5             <div class="d2">div2</div>
 6             <div class="d3">div3</div>
 7         </div>
 8     </body>
 9     <style>
10         .content{
11             display: flex;
12             justify-content: space-between;
13             align-items: center;
14             height: 100%;
15         }
16         .d1,.d2,.d3{  
17             height: 100px;
18             width: 100px;
19         }
20         .d1{
21             background-color: aquamarine;
22             align-self:flex-start;
23         }
24         .d2{
25             background-color: coral
26         }
27         .d3{
28             background-color: cornflowerblue;
29             align-self:flex-end;
30         }
31     </style>
32 </html>

解析:

1.把最外層的父節點的justify-content屬性設為space-between,三個div就會平均分布在左中右。

2.把父節點的align-items屬性設為center,讓三個div都垂直居中。

3.單獨設置第一個和第二個div的align-self屬性,把第一個設為flex-start,第三個設為flex-end,就完美實現了

 

效果如下圖:

 

 

原創,轉載請注明出處

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM