<legend id='lrMlo'><style id='lrMlo'><dir id='lrMlo'><q id='lrMlo'></q></dir></style></legend>

    • <bdo id='lrMlo'></bdo><ul id='lrMlo'></ul>
    <i id='lrMlo'><tr id='lrMlo'><dt id='lrMlo'><q id='lrMlo'><span id='lrMlo'><b id='lrMlo'><form id='lrMlo'><ins id='lrMlo'></ins><ul id='lrMlo'></ul><sub id='lrMlo'></sub></form><legend id='lrMlo'></legend><bdo id='lrMlo'><pre id='lrMlo'><center id='lrMlo'></center></pre></bdo></b><th id='lrMlo'></th></span></q></dt></tr></i><div id='lrMlo'><tfoot id='lrMlo'></tfoot><dl id='lrMlo'><fieldset id='lrMlo'></fieldset></dl></div>

  • <small id='lrMlo'></small><noframes id='lrMlo'>

        <tfoot id='lrMlo'></tfoot>
      1. 嵌套 CSS 网格是不好的做法吗?

        时间:2023-08-01

            • <small id='lSbHZ'></small><noframes id='lSbHZ'>

                <i id='lSbHZ'><tr id='lSbHZ'><dt id='lSbHZ'><q id='lSbHZ'><span id='lSbHZ'><b id='lSbHZ'><form id='lSbHZ'><ins id='lSbHZ'></ins><ul id='lSbHZ'></ul><sub id='lSbHZ'></sub></form><legend id='lSbHZ'></legend><bdo id='lSbHZ'><pre id='lSbHZ'><center id='lSbHZ'></center></pre></bdo></b><th id='lSbHZ'></th></span></q></dt></tr></i><div id='lSbHZ'><tfoot id='lSbHZ'></tfoot><dl id='lSbHZ'><fieldset id='lSbHZ'></fieldset></dl></div>
                  <bdo id='lSbHZ'></bdo><ul id='lSbHZ'></ul>

                    <tbody id='lSbHZ'></tbody>
                  <tfoot id='lSbHZ'></tfoot>
                  <legend id='lSbHZ'><style id='lSbHZ'><dir id='lSbHZ'><q id='lSbHZ'></q></dir></style></legend>
                  本文介绍了嵌套 CSS 网格是不好的做法吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我正在尝试使用组件驱动的前端框架,例如 Angular,最后学习 CSS Grid.

                  I'm experimenting with component driven front end frameworks, such as Angular, and finally learning CSS Grid.

                  我的问题是:嵌套 CSS Grids 是不好的做法吗?

                  My question is: is it bad practice to nest CSS Grids?

                  我在这里所做的是在我的主/根组件中,我使用 css 网格来制作两件事:导航栏和主要内容区域,因为导航栏将出现在整个应用程序和主要内容中.

                  What I've done here is in my main/root component, I've used css grid to make two things: the navbar and the main content area, since navbar will be present in the entire app and also the main content.

                  如下所示,根级别的网格然后是 <nav-bar> 组件中的另一个网格.在主要内容区域中,还会有更多,可能在我使用的每个/任何 Angular 组件中都有一个网格.

                  As you can see below, the grid on the root level then another grid in the <nav-bar> component. And in the main content area, there will be many more, probably a grid in each/any Angular component I use.

                  **********************    ******************************
                  *       Navbar       * => * img | nav         | logout *
                  **********************    ******************************
                  **********************
                  *                    *
                  *       Content      *
                  *                    *
                  **********************
                  

                  示例代码如下:

                  app.component.html

                  <div class="container">
                  
                      <div class="item-navbar"></div>
                  
                      <div class="item-nav">
                          <nav-bar></nav-bar>
                      </div>
                  
                      <div class="item-content">
                          <router-outlet></router-outlet>
                      </div>
                  
                  </div>
                  
                  <!-- With this CSS: -->
                  <style>
                  .container {
                      display: grid;
                      grid: ". nav ." 
                          ". content ."
                          / 3vh auto 3vh;
                      row-gap: 1vh;
                  }
                  
                  .item-navbar {
                      grid-area: 1 / 1 / 2 / 4;
                      position: relative;
                      z-index: -1;
                      background: #579C87;
                      box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
                  }
                  
                  .item-nav {
                      grid-area: nav;
                  }
                  
                  .item-content {
                      grid-area: content;
                      background: #D1C7B8;
                      box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
                  }
                  </style>
                  

                  那么nav-bar.component.html

                  <nav class="navbar" role="navigation" aria-label="main navigation">
                  
                      <div class="navbar-brand">
                          <a class="navbar-item" routerLink="/">
                              <div class="img">
                                  <img src="logo.jpg">
                              </div>
                          </a>
                      </div>
                  
                      <div class="navbar-menu">
                          <a routerLink="/dashboard" class="navbar-item">Dashboard</a> 
                      </div>
                  
                      <div class="navbar-logout">
                          <a routerLink="/logout" class="navbar-item">Logout</a> 
                      </div>
                  </nav>
                  
                  <!-- with this CSS: -->
                  <style>
                  .navbar {
                      display: grid;
                      grid-template-columns: 64px auto auto;
                      grid-template-rows: auto;
                      grid-template-areas: "image navs logout";
                      gap: 1vh;
                  }
                  
                  .navbar-brand {
                      grid-area: image;
                      place-self: center / start;
                  }
                  
                  .navbar-menu {
                      grid-area: navs;
                      place-self: center start;
                  }
                  
                  .navbar-logout {
                      grid-area: logout;
                      place-self: center end;
                  }
                  </style>
                  

                  推荐答案

                  嵌套网格容器没有任何问题或无效.

                  There is nothing wrong or invalid with nesting grid containers.

                  网格规范不禁止,甚至不警告,实践.上面写着:

                  The grid specification doesn't prohibit, or even admonish, against the practice. It says this:

                  网格容器可以根据需要嵌套或与弹性容器混合,以创建更复杂的布局.

                  Grid containers can be nested or mixed with flex containers as necessary to create more complex layouts.

                  事实上,嵌套网格容器是您必须将网格属性应用于顶级容器的后代的操作,因为网格布局仅适用于父元素和子元素之间.

                  In fact, nesting grid containers is what you must do to apply grid properties to the descendants of a top-level container, since grid layout works only between parent and child elements.

                  更多细节在这里:

                  • 网格属性不适用于网格容器内的元素
                  • 在主容器中定位网格项的内容(子网格功能)

                  这篇关于嵌套 CSS 网格是不好的做法吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:CSS 制作一个单元格网格,每个单元格填充 100% 的行高 下一篇:删除 QML Grid 的子节点

                  相关文章

                  1. <tfoot id='BbLmO'></tfoot>
                    <legend id='BbLmO'><style id='BbLmO'><dir id='BbLmO'><q id='BbLmO'></q></dir></style></legend>

                        <bdo id='BbLmO'></bdo><ul id='BbLmO'></ul>
                    1. <i id='BbLmO'><tr id='BbLmO'><dt id='BbLmO'><q id='BbLmO'><span id='BbLmO'><b id='BbLmO'><form id='BbLmO'><ins id='BbLmO'></ins><ul id='BbLmO'></ul><sub id='BbLmO'></sub></form><legend id='BbLmO'></legend><bdo id='BbLmO'><pre id='BbLmO'><center id='BbLmO'></center></pre></bdo></b><th id='BbLmO'></th></span></q></dt></tr></i><div id='BbLmO'><tfoot id='BbLmO'></tfoot><dl id='BbLmO'><fieldset id='BbLmO'></fieldset></dl></div>

                      <small id='BbLmO'></small><noframes id='BbLmO'>