CSS3 中FLEX快速实现BorderLayout布局

阅读更多

学习完flex的布局模式之后,我们趁热打铁,来实现一个BoxLayout布局.什么是BoxLayout布局?那我们先上一个图看看

CSS3 中FLEX快速实现BorderLayout布局_第1张图片

BoxLayout布局写过后端UI代码的编程者应该不陌生了,写前端的代码的也同样很熟悉,包括html的框架frame.但以往的CSS中使用float浮动来进行控制,控制起来相对来说是复杂一些,也需要加入更多的标签和代码.

 

看完这个界面,我们就可以着手写出标签的代码布局:

 

  1.   
  2.     
      
  3.     东  
  4.     
  
  •     西  
  •     
      
  •   
     
    代码很简单,就只有二级关系,当然也可以将parent这一父级去掉,将body来当做父级,除非有必要

    那我们开始用CSS来实现BorderLayout,这里同样定义父级parent为flex容器,方向为从左至右,可以换行.

     

     
    1. .parent{  
    2.     display: flex;  
    3.     flex-direction: row;  
    4.     flex-wrap: wrap;  
    5.     text-align: center;  
    6. }  

     

    接着设置flex项的布局模式,header,footer我们将其设置为flex-basis:100%;因为他们占据整行,而两个aside的宽度相等,center比两边的aside要宽,所以我们用flex-grow来设置他们的占据比例.

     

     
    1. header, footer{  
    2.     flex-basis: 100%;  
    3. }  
    4. .center{  
    5.     flex-grow: 3;  
    6. }  
    7. aside{  
    8.     flex-grow:1;  
    9. }  
     
    这样就实现了BorderLayout布局,是不是非常简单.不要忘记了,要给他们设定相应的高度,和背景色,不然看到的是一片白,以为没反应呢!我是这样设置的,作为参考
     
    1. .parent{  
    2.     display: flex;  
    3.     flex-direction: row;  
    4.     flex-wrap: wrap;  
    5.     text-align: center;  
    6. }  
    7. header,footer,aside,.center{  
    8.     padding: 10px;;  
    9. }  
    10. .center,aside{  
    11.     min-height: 300px;  
    12. }  
    13. header, footer{  
    14.     flex-basis: 100%;  
    15.     min-height: 80px;  
    16. }  
    17. header{  
    18.     background-color: cadetblue;  
    19. }  
    20. footer{  
    21.     background-color: darkgrey;  
    22. }  
    23. .center{  
    24.     flex-grow: 3;  
    25. }  
    26. aside{  
    27.     flex-grow:1;  
    28.     background-color: bisque;  
    29. }  
     

    最后测试OK!

     

     CSS3 中FLEX快速实现BorderLayout布局_第2张图片

    本文属于吴统威的博客,微信公众号:bianchengderen 的原创文章,转载时请注明出处及相应链接:http://www.wutongwei.com/front/infor_showone.tweb?id=148 ,欢迎大家传播与分享.

    你可能感兴趣的:(html5,css3,布局,灵活性,BorderLayout)