我正在尝试建立一个页脚如下
我正在尝试使用CSS网格来实现这个。我可以使用网格-模板-列和网格-模板-行来划分整个东西,并在它们中保留空的div,除了内容部分,或者我可以使用网格-间隙属性,但不同列之间差距是不同的。第一种方法似乎有点笨拙,在其他方法中,我需要使列等距。有人能指导我如何最好地实现这个吗?
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>
wgmfuz8q2#
有很多方法可以实现这一点,正如您提到的,其中之一是使用grid-template-*属性,另一个选项是grid-gap/gap。第三种选择是使用grid-template-rows: repeat(12, minmax(auto-fill, 1fr))将行拆分为列(例如12列),然后使用grid-area定义特定区域的开始和结束位置。因此,您可以获得更细粒度的灵活列宽(如果您需要更细粒度的列宽,则可以使用12列以上的列宽,例如24列)。您仍然可以使用gap对其进行调整。
grid-template-*
grid-template-rows: repeat(12, minmax(auto-fill, 1fr))
grid-area
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
2条答案
按热度按时间bqucvtff1#
根据我的理解,你的主要问题似乎是左栏,你想给予右边距:0;但在这种情况下文本不会左对齐:所以,我的方法是:
wgmfuz8q2#
有很多方法可以实现这一点,正如您提到的,其中之一是使用
grid-template-*
属性,另一个选项是grid-gap/gap。第三种选择是使用
grid-template-rows: repeat(12, minmax(auto-fill, 1fr))
将行拆分为列(例如12列),然后使用grid-area
定义特定区域的开始和结束位置。因此,您可以获得更细粒度的灵活列宽(如果您需要更细粒度的列宽,则可以使用12列以上的列宽,例如24列)。您仍然可以使用gap
对其进行调整。演示:www.grid.layoutit.com?id=VhvjWF7