当使用 `diplay: table;` 将内容居中时,如何使填充按浏览器的宽度缩放?
How can I make to work padding, which is scaling by browser's width, when centered a content using `diplay: table;`?
^如题所示^。我需要按浏览器的宽度缩放填充。我试过这个:
html, body{
height: 100%;
}
body{
display: table;
margin: 0 auto;
}
#center{
display: table-cell;
vertical-align: middle;
}
.box{
padding: 25%;
background: #000;
color: white;
}
h1{
margin: 0;
padding: 0;
}
<div id="center">
<div class="box">
<h1>Hello world</h1>
</div>
</div>
但是没用。有什么办法可以做到吗?我想使用 display: table;
使 div 居中,而不是使用 flexbox 或 position: absolute
。谢谢。
使用 vw
,这是视口宽度的百分比。
html, body{
height: 100%;
}
body{
display: table;
margin: 0 auto;
}
#center{
display: table-cell;
vertical-align: middle;
}
.box{
padding: 5vw;
background: #000;
color: white;
}
h1{
margin: 0;
padding: 0;
}
<div id="center">
<div class="box">
<h1>Hello world</h1>
</div>
</div>
See fiddle here you can resize the viewable area and see the padding size change.
你应该使用 flex-box 使垂直居中。
html, body{
height: 100%;
}
body{
display: flex;
flex-direction: column;
justify-content: center
}
^如题所示^。我需要按浏览器的宽度缩放填充。我试过这个:
html, body{
height: 100%;
}
body{
display: table;
margin: 0 auto;
}
#center{
display: table-cell;
vertical-align: middle;
}
.box{
padding: 25%;
background: #000;
color: white;
}
h1{
margin: 0;
padding: 0;
}
<div id="center">
<div class="box">
<h1>Hello world</h1>
</div>
</div>
但是没用。有什么办法可以做到吗?我想使用 display: table;
使 div 居中,而不是使用 flexbox 或 position: absolute
。谢谢。
使用 vw
,这是视口宽度的百分比。
html, body{
height: 100%;
}
body{
display: table;
margin: 0 auto;
}
#center{
display: table-cell;
vertical-align: middle;
}
.box{
padding: 5vw;
background: #000;
color: white;
}
h1{
margin: 0;
padding: 0;
}
<div id="center">
<div class="box">
<h1>Hello world</h1>
</div>
</div>
See fiddle here you can resize the viewable area and see the padding size change.
你应该使用 flex-box 使垂直居中。
html, body{
height: 100%;
}
body{
display: flex;
flex-direction: column;
justify-content: center
}