我正在尝试使用Material Design Light创建一个基本网站,它响应屏幕的大小,我无法使网格填充所有可用的高度。我试图在网上寻找这个问题的解决方案,但我找不到任何有用的工作。
以下是我将使用的网格的源代码:
<main class="mdl-layout__content">
<div class="mdl-grid">
<div class="mdl-cell mdl-cell--4-col" style="text-align:center; background-color:gray;">size 4</div>
<div class="mdl-cell mdl-cell--4-col" style="text-align:center; background-color:gray;">size 4</div>
<div class="mdl-cell mdl-cell--4-col" style="text-align:center; background-color:gray;">size 4</div>
</div>
</main>
以下是完整Html页面的链接:Example MDL Page
以下是问题的图片:Page Example
答案 0 :(得分:1)
我这样做是为了覆盖几个mdl样式,特别是让main
显示为flex
而不是inline-block
。添加ID以限制此覆盖对您网站其余部分的影响可能是有意义的
.mdl-layout__content {
display: flex;
flex-direction: column;
.mdl-grid {
width: 100%;
flex-grow: 2;
}
}
答案 1 :(得分:0)
我假设您的页面高度是视图高度,您只能使用现代浏览器。 See view height
基本上我们在这里做的是我们已经知道我们的页脚和标题有多高(在小提琴中我只将其设置为50px)。然后我们使用calc
CSS属性将view height (vh)
设置为100% - 100px(表示页脚和页眉的高度放在一起(50 + 50 = 100)
<div id="main-body">
<div class="header"></div>
<div class="content clearfix">
<div class="a">1</div>
<div class="a">2</div>
<div class="a">3</div>
<div class="a">4</div>
</div>
<div class="footer"></div>
</div>
* {
box-sizing: border-box; /* add for browser prefixes */
}
#main-body {
height: 100%;
overflow: hidden;
}
.header, .footer {
background-color: blue;
height: 50px;
}
.content .a {
height: calc(100vh - 100px);
background-color: red;
width: 25%;
float: left;
}
.clearfix:after {
content: "";
clear:both;
display:table;
}
请注意,您还需要<head>
中的视口元标记才能生效。
<meta name="viewport" content="width=device-width, initial-scale=1">
OP补充说,他希望能够在这些内容div中居中文本
<div id="main-body">
<div class="header"></div>
<div class="content clearfix">
<div class="a"><p>1</p></div>
<div class="a"><p>2</p></div>
<div class="a"><p>3</p></div>
<div class="a"><p>4</p></div>
</div>
<div class="footer"></div>
</div>
#main-body {
height: 100%;
overflow: hidden;
}
.header, .footer {
background-color: blue;
height: 50px;
}
.content .a {
height: calc(100vh - 100px);
background-color: red;
width: 25%;
float: left;
position: relative;
}
.content .a p {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
margin: 0;
}
.clearfix:after {
content: "";
clear:both;
display:table;
}
答案 2 :(得分:-2)
尝试使用CSS height属性。像这样:
<div class="mdl-cell mdl-cell--4-col" style="text-align:center; background-color:gray; height:100%;">size 4</div>
<div class="mdl-cell mdl-cell--4-col" style="text-align:center; background-color:gray; height:100%;">size 4</div>
<div class="mdl-cell mdl-cell--4-col" style="text-align:center; background-color:gray; height:100%;">size 4</div>