文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Grid vs Flexbox:哪个更好?

2024-12-03 07:07

关注

这个话题已经争论了很多次,哪个更好?

对您的网站布局和内容使用Grid(网格)系统还是Flexbox?让我们深入了解两者之间的主要区别以及何时使用它们。

Grid用于二维布局,Flexbox用于一维布局。

网格布局——二维

网格布局(即Bootstrap或CSS网格)用于二维布局。这意味着什么?这意味着,如果您要同时创建包含行和列的布局,请使用网格系统。

对于布局将包含页面内容的页面容器来说,这是一个完美的解决方案。

Flexbox ——一维

将Flexbox用于一维布局,这意味着内容会沿一个方向(水平或垂直)移动。

以Navbar为例——您可能具有Logo和页面链接,这些Logo和页面链接水平排列成一行(单向)。使用Flexbox将以更少的代码行为您提供更大的灵活性和对内容的控制。

使用网格系统进行页面布局,将Flexbox用于页面内容。

这里的一般规则是Flexbox会基于内容,而网格基于布局。

Flexbox —内容之王

让我们看一个简单的示例,以帮助我们了解如何将这两个概念一起使用。

让我们从上方使用导航栏,从头开始。这是原始的HTML:

  1.   
    Home
     
  2.   
    About
     
  3.   
    Contact
     
  4.   
    Search
     
  5.  

现在,在使用Flexbox之前,这些元素将像这样简单地相互堆叠。

让我们贴上一个 display: flex 看看会发生什么。

  1. nav { 
  2.   display: flex; 

惊人的!现在,我们将元素很好地排成一行。

让我们把“SIGN IN”(登录)扔到最右边。

  1. nav > div:nth-child(4) { 
  2.   margin-left: auto; 

真正酷的是,我们把它留给项目来决定它们如何放置。我们不需要做任何其他事情,只需要给它一个 display: flex;

现在,我们可以使用网格系统实现同样的结果--但让我在这里告诉你其中的区别。在这个例子中,我将使用Bootstrap网格系统来创建我们的行和列。

这是我们的HTML

  1. "row"
  2.   "col-2">Home
 
  •   "col-2">About
  •  
  •   "col-2">Contact 
  •   "col-6">Sign In 
  •  
  • 此处的区别是我们被迫设置许多列。

    通过Bootstraps网格系统,我们需要设置相当于12列的栏位来扩展视口的全部宽度。

    这里还有一个使用网格系统做内容的痛苦。如果我们将来决定添加另一个链接,我们每次都需要改变列宽。

    1. "row"
    2.   "col-2">Home 
    3.   "col-2">About 
    4.   "col-2">Contact 
    5.   "col-2">Rad Stuff 
    6.   "col-4">Sign In 
    7.  

    有了Flexbox,我们只需将新的导航条链接放入,元素就会自行处理。

    结合两者

    让我们看看如何将两者结合使用,这是网站布局。

    这是HTML(再次使用Bootstraps网格系统类)。

    1. "container"
    2.   "row"
    3.     "col-12"
    4.       Header 
    5.      
    6.    
    7.   "row"
    8.     "col-3"
    9.       Menu 
    10.      
    11.     "col-9"
    12.       "row"
    13.         "col-12"
    14.           Content 
    15.          
    16.        
    17.       "row"
    18.         "col-12"
    19.           Content 
    20.          
    21.        
    22.      
    23.    
    24.   "row"
    25.     "col-12"
    26.       Footer 
    27.      
    28.    
    29.  

    现在,我们将添加Navbar——它是一个Flexbox容器,代替我们网格布局中的“HEADER”文本。在这个片段中,我只展示了包装导航条的HTML。

    1.  
    2.   
    3.     
      Home
       
    4.     
      About
       
    5.     
      Search
       
    6.     
      Sign In
       
    7.    
    8.  

    现在,我们有了一个可以同时利用Grid布局和Flexbox优势的布局。

    我希望你现在对Flexbox和Grid的一般和具体区别有了深刻的了解,知道如何和何时使用它们。

    本文转载自微信公众号「前端全栈开发者」,可以通过以下二维码关注。转载本文请联系前端全栈开发者公众号。

     

    来源:前端全栈开发者内容投诉

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    软考中级精品资料免费领

    • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

      难度     813人已做
      查看
    • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

      难度     354人已做
      查看
    • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

      难度     318人已做
      查看
    • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

      难度     435人已做
      查看
    • 2024年上半年系统架构设计师考试综合知识真题

      难度     224人已做
      查看

    相关文章

    发现更多好内容

    猜你喜欢

    AI推送时光机
    位置:首页-资讯-后端开发
    咦!没有更多了?去看看其它编程学习网 内容吧
    首页课程
    资料下载
    问答资讯