网格元素未扩展到 100% 宽度
Grid element not expanding to 100% width
所以我是网格的新手。现在将它用于一些项目,但仍然不能很好地解决问题。我在将网格元素设置为 100% 但在 80% 处被裁剪时遇到问题。
这似乎是一个简单的修复方法,但过去一个小时我一直在研究这个问题,似乎找不到导致它的原因。
注意:我正在使用来自 momantic 的滑块元素,但由于视点太小,它没有出现在代码预览中。
body{
margin:0;
}
.page-wrapper{
width:100%;
height:100%;
display:grid;
grid-template-columns:10% 40% 20% 10% 5%;
grid-template-rows:4vh auto 2vh auto 6vh;
grid-template-areas:". . . . ."
". page_heading page_heading page_heading ."
". . . . ."
". svg-container . user_controls ."
". . . . .";
}
.page_heading-wrapper{
grid-area:page_heading;
width:100%;
}
.svg-container{
grid-area:svg-container;
}
.user_controls{
grid-area:user_controls;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/fomantic-ui/2.7.8/components/slider.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fomantic-ui/2.7.8/components/slider.min.js"></script>
<div class="page-wrapper">
<div class="page_heading-wrapper"></div>
<div class="svg-container">
<svg class="user_svg_elem" height="210" width="400">
<path d="M150 0 L75 200 L225 200 Z" data-path_to_mask />
<path d="M150 0 L74 200 L225 200 Z" data-path_to_mask />
</svg>
</div>
<div class="user_controls ui slider"></div>
</div>
10% + 40% + 20% + 10% + 5% = 85%
可能是这里的问题。
网格不像表格那样工作,将百分比调整为总计始终为 100%。
您可以使用单位 fr 代替百分比:
grid-template-columns:1fr 4fr 2fr 1fr 0.5fr;
您没有创建 100%
网格 column
。 grid-template-columns:10% 40% 20% 10% 5%;
= 85%
。做到100%
。将 grid-template-columns:10% 40% 20% 10% 5%;
更改为 grid-template-columns: 20% 40% 20% 10% 10%;
。现在是 100% width
。 Example is here.
同时添加 box-sizing
CSS.
*,
*:after,
*:before{
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
box-sizing
CSS 属性 设置如何计算元素的总 width
和 height
。 MDN.
中的详细信息
所以我是网格的新手。现在将它用于一些项目,但仍然不能很好地解决问题。我在将网格元素设置为 100% 但在 80% 处被裁剪时遇到问题。
这似乎是一个简单的修复方法,但过去一个小时我一直在研究这个问题,似乎找不到导致它的原因。
注意:我正在使用来自 momantic 的滑块元素,但由于视点太小,它没有出现在代码预览中。
body{
margin:0;
}
.page-wrapper{
width:100%;
height:100%;
display:grid;
grid-template-columns:10% 40% 20% 10% 5%;
grid-template-rows:4vh auto 2vh auto 6vh;
grid-template-areas:". . . . ."
". page_heading page_heading page_heading ."
". . . . ."
". svg-container . user_controls ."
". . . . .";
}
.page_heading-wrapper{
grid-area:page_heading;
width:100%;
}
.svg-container{
grid-area:svg-container;
}
.user_controls{
grid-area:user_controls;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/fomantic-ui/2.7.8/components/slider.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fomantic-ui/2.7.8/components/slider.min.js"></script>
<div class="page-wrapper">
<div class="page_heading-wrapper"></div>
<div class="svg-container">
<svg class="user_svg_elem" height="210" width="400">
<path d="M150 0 L75 200 L225 200 Z" data-path_to_mask />
<path d="M150 0 L74 200 L225 200 Z" data-path_to_mask />
</svg>
</div>
<div class="user_controls ui slider"></div>
</div>
10% + 40% + 20% + 10% + 5% = 85%
可能是这里的问题。
网格不像表格那样工作,将百分比调整为总计始终为 100%。
您可以使用单位 fr 代替百分比:
grid-template-columns:1fr 4fr 2fr 1fr 0.5fr;
您没有创建 100%
网格 column
。 grid-template-columns:10% 40% 20% 10% 5%;
= 85%
。做到100%
。将 grid-template-columns:10% 40% 20% 10% 5%;
更改为 grid-template-columns: 20% 40% 20% 10% 10%;
。现在是 100% width
。 Example is here.
同时添加 box-sizing
CSS.
*,
*:after,
*:before{
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
box-sizing
CSS 属性 设置如何计算元素的总 width
和 height
。 MDN.