reactjs 页脚的CSS网格间距与空Div

5vf7fwbs  于 2023-01-04  发布在  React
关注(0)|答案(2)|浏览(135)

我正在尝试建立一个页脚如下

我正在尝试使用CSS网格来实现这个。我可以使用网格-模板-列和网格-模板-行来划分整个东西,并在它们中保留空的div,除了内容部分,或者我可以使用网格-间隙属性,但不同列之间差距是不同的。第一种方法似乎有点笨拙,在其他方法中,我需要使列等距。有人能指导我如何最好地实现这个吗?

bqucvtff

bqucvtff1#

根据我的理解,你的主要问题似乎是左栏,你想给予右边距:0;但在这种情况下文本不会左对齐:所以,我的方法是:

<footer class='footer-container'>
    <div class='left-column'>
        <div class="left-column-inner-div">
             <!-- left column content-->
        </div>
    </div>
    <div class='middle-column'>
         <!-- middle column content-->
    </div>
    <div class='right-column'>
         <!-- right column content -->
    </div>
</footer> 
    
<style>
  .footer-container {
       display: grid;
       grid-template-columns: 2fr 1fr 2fr;
   }
    
  .left-column {
       display: flex;
       justify-content: flex-end;
       width: fit-content;
   }
    
   .middle-column {
       display: flex;
       justify-content: center;
    }
    
    .right-column {
       display: flex;
       justify-content: flex-start;
    }
    
</style>
wgmfuz8q

wgmfuz8q2#

有很多方法可以实现这一点,正如您提到的,其中之一是使用grid-template-*属性,另一个选项是grid-gap/gap。
第三种选择是使用grid-template-rows: repeat(12, minmax(auto-fill, 1fr))将行拆分为列(例如12列),然后使用grid-area定义特定区域的开始和结束位置。因此,您可以获得更细粒度的灵活列宽(如果您需要更细粒度的列宽,则可以使用12列以上的列宽,例如24列)。您仍然可以使用gap对其进行调整。

<div class="container">
  <div class="Benchmark"></div>
  <div class="Navigation"></div>
  <div class="Social-links"></div>
</div>
.container {
  display: grid; 
  grid-template-columns: repeat(12, 1fr);
  grid-template-rows: 1fr;
  gap: 0px 5px; 
}
.Benchmark { grid-area: 1 / 1 / 2 / 5; }
.Navigation { grid-area: 1 / 6 / 2 / 8; }
.Social-links { grid-area: 1 / 9 / 2 / 13; }

演示:www.grid.layoutit.com?id=VhvjWF7

相关问题