CSS 网格尺寸未按预期运行
CSS Grid dimensions not behaving as expected
我正在尝试新的 CSS 网格布局,但我得到了一些意想不到的结果。
我的第一个问题是我的页脚没有占据视口宽度的 98%,我的页眉具有完全相同的代码并且看起来不错。
第二个问题是页面的左侧似乎有填充(空白),但右侧看起来没问题。
在 Firefox 和 Chrome.
中,一切看起来都完全一样
我的紫色侧边栏是故意缩进的,所以请忽略!
有人使用过 CSS 网格布局吗?
.grid_container {
display: grid;
grid-template-rows: auto;
grid-template-columns: repeat(12, 1fr);
/*grid-gap: 20px; Used to add a gap between tracks in our grid */
}
.header{
grid-area:header; /*Name for our grid, use this as reference to position items */
width: 98vw;
height: 40px;
grid-row-start: 1;
grid-row-end: auto;
grid-column-start: 1;
grid-column-end: 12;
background:red;
}
.header_social_media_bar_list{
list-style: none;
}
.header_social_media_bar_list li{
float: left;
}
.masthead{
grid-area:masthead;
}
.lightbox{
grid-area:lightbox;
grid-row-start: 2;
grid-row-end: auto;
grid-column-start: 1;
grid-column-end: 12;
width: 98vw;
height: 336px;
background: blue;
}
.sidebar_left{
grid-area:sidebar_left;
grid-row-start: 3;
grid-row-end: auto;
grid-column-start: 2;
grid-column-end: 12;
width: 220px;
height: 436px;
background: purple;
}
.main_content{
grid-area:main_content;
}
.footer{
grid-area:footer;
grid-row-start: 4;
grid-row-end: auto;
grid-column-start: 1;
grid-column-end: 12;
width: 98vm;
height: 136px;
background: orange;
}
<div class="grid_container">
<div class="header">
<div class="header_social_media_bar">
<ul class="header_social_media_bar_list">
<li>Item1</li>
<li>Item2</li>
<li>Item3</li>
<li>Item4</li>
<li>Item5</li>
</ul>
</div>
</div>
<div class="lightbox">
Lightbox
</div>
<div class="sidebar_left">
Left Bar
</div>
<div class="footer">
Footer
</div>
</div> <!--End Grid container -->
您的问题是 width: 98vm
,应该更改为 width: 98vw
,对于额外的填充,您应该在 body
上设置 padding: 0; margin: 0;
我的 header 具有完全相同的代码并且看起来不错。
比较:
.header {
width: 98vw;
---------^
}
.footer{
width: 98vm;
---------^
}
实际上我认为您没有像您在评论中所说的那样尝试 vw
,但它现在有效了。
body {
margin: 0;
padding: 0;
}
.grid_container {
display: grid;
grid-template-rows: auto;
grid-template-columns: repeat(12, 1fr);
/*grid-gap: 20px; Used to add a gap between tracks in our grid */
}
.header{
grid-area:header; /*Name for our grid, use this as reference to position items */
width: 98vw;
height: 40px;
grid-row-start: 1;
grid-row-end: auto;
grid-column-start: 1;
grid-column-end: 12;
background:red;
}
.header_social_media_bar_list{
list-style: none;
}
.header_social_media_bar_list li{
float: left;
}
.masthead{
grid-area:masthead;
}
.lightbox{
grid-area:lightbox;
grid-row-start: 2;
grid-row-end: auto;
grid-column-start: 1;
grid-column-end: 12;
width: 98vw;
height: 336px;
background: blue;
}
.sidebar_left{
grid-area:sidebar_left;
grid-row-start: 3;
grid-row-end: auto;
grid-column-start: 2;
grid-column-end: 12;
width: 220px;
height: 436px;
background: purple;
}
.main_content{
grid-area:main_content;
}
.footer {
grid-area: footer;
grid-row-start: 4;
grid-row-end: auto;
grid-column-start: 1;
grid-column-end: 12;
width: 98vw;
height: 136px;
background: orange;
}
<div class="grid_container">
<div class="header">
<div class="header_social_media_bar">
<ul class="header_social_media_bar_list">
<li>Item1</li>
<li>Item2</li>
<li>Item3</li>
<li>Item4</li>
<li>Item5</li>
</ul>
</div>
</div>
<div class="lightbox">
Lightbox
</div>
<div class="sidebar_left">
Left Bar
</div>
<div class="footer">
Footer
</div>
</div> <!--End Grid container -->
我正在尝试新的 CSS 网格布局,但我得到了一些意想不到的结果。
我的第一个问题是我的页脚没有占据视口宽度的 98%,我的页眉具有完全相同的代码并且看起来不错。
第二个问题是页面的左侧似乎有填充(空白),但右侧看起来没问题。 在 Firefox 和 Chrome.
中,一切看起来都完全一样我的紫色侧边栏是故意缩进的,所以请忽略!
有人使用过 CSS 网格布局吗?
.grid_container {
display: grid;
grid-template-rows: auto;
grid-template-columns: repeat(12, 1fr);
/*grid-gap: 20px; Used to add a gap between tracks in our grid */
}
.header{
grid-area:header; /*Name for our grid, use this as reference to position items */
width: 98vw;
height: 40px;
grid-row-start: 1;
grid-row-end: auto;
grid-column-start: 1;
grid-column-end: 12;
background:red;
}
.header_social_media_bar_list{
list-style: none;
}
.header_social_media_bar_list li{
float: left;
}
.masthead{
grid-area:masthead;
}
.lightbox{
grid-area:lightbox;
grid-row-start: 2;
grid-row-end: auto;
grid-column-start: 1;
grid-column-end: 12;
width: 98vw;
height: 336px;
background: blue;
}
.sidebar_left{
grid-area:sidebar_left;
grid-row-start: 3;
grid-row-end: auto;
grid-column-start: 2;
grid-column-end: 12;
width: 220px;
height: 436px;
background: purple;
}
.main_content{
grid-area:main_content;
}
.footer{
grid-area:footer;
grid-row-start: 4;
grid-row-end: auto;
grid-column-start: 1;
grid-column-end: 12;
width: 98vm;
height: 136px;
background: orange;
}
<div class="grid_container">
<div class="header">
<div class="header_social_media_bar">
<ul class="header_social_media_bar_list">
<li>Item1</li>
<li>Item2</li>
<li>Item3</li>
<li>Item4</li>
<li>Item5</li>
</ul>
</div>
</div>
<div class="lightbox">
Lightbox
</div>
<div class="sidebar_left">
Left Bar
</div>
<div class="footer">
Footer
</div>
</div> <!--End Grid container -->
您的问题是 width: 98vm
,应该更改为 width: 98vw
,对于额外的填充,您应该在 body
padding: 0; margin: 0;
我的 header 具有完全相同的代码并且看起来不错。
比较:
.header {
width: 98vw;
---------^
}
.footer{
width: 98vm;
---------^
}
实际上我认为您没有像您在评论中所说的那样尝试 vw
,但它现在有效了。
body {
margin: 0;
padding: 0;
}
.grid_container {
display: grid;
grid-template-rows: auto;
grid-template-columns: repeat(12, 1fr);
/*grid-gap: 20px; Used to add a gap between tracks in our grid */
}
.header{
grid-area:header; /*Name for our grid, use this as reference to position items */
width: 98vw;
height: 40px;
grid-row-start: 1;
grid-row-end: auto;
grid-column-start: 1;
grid-column-end: 12;
background:red;
}
.header_social_media_bar_list{
list-style: none;
}
.header_social_media_bar_list li{
float: left;
}
.masthead{
grid-area:masthead;
}
.lightbox{
grid-area:lightbox;
grid-row-start: 2;
grid-row-end: auto;
grid-column-start: 1;
grid-column-end: 12;
width: 98vw;
height: 336px;
background: blue;
}
.sidebar_left{
grid-area:sidebar_left;
grid-row-start: 3;
grid-row-end: auto;
grid-column-start: 2;
grid-column-end: 12;
width: 220px;
height: 436px;
background: purple;
}
.main_content{
grid-area:main_content;
}
.footer {
grid-area: footer;
grid-row-start: 4;
grid-row-end: auto;
grid-column-start: 1;
grid-column-end: 12;
width: 98vw;
height: 136px;
background: orange;
}
<div class="grid_container">
<div class="header">
<div class="header_social_media_bar">
<ul class="header_social_media_bar_list">
<li>Item1</li>
<li>Item2</li>
<li>Item3</li>
<li>Item4</li>
<li>Item5</li>
</ul>
</div>
</div>
<div class="lightbox">
Lightbox
</div>
<div class="sidebar_left">
Left Bar
</div>
<div class="footer">
Footer
</div>
</div> <!--End Grid container -->