CSS3 中FLEX快速实现BorderLayout布局

时间:2023-05-16 10:59:20

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

CSS3 中FLEX快速实现BorderLayout布局

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

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

  1. <div class="parent">
  2. <header>北</header>
  3. <aside class="left">东</aside>
  4. <div class="center">中</div>
  5. <aside class="righ">西</aside>
  6. <footer>南</footer>
  7. </div>

代码很简单,就只有二级关系,当然也可以将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布局

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