我使用以下方法在css中创建垂直对齐方式
.base{
background-color:green;
width:200px;
height:200px;
overflow:auto;
position:relative;
}
.vert-align{
padding-top:50%;
height:50%;
}Run Code Online (Sandbox Code Playgroud)
并使用以下div结构.
<!-- and used the following div structure. -->
<div class="base">
<div class="vert-align">
Content Here
</div>
</div>Run Code Online (Sandbox Code Playgroud)
虽然这似乎适用于这种情况,但我感到惊讶的是,当我增加或减少我的基础div的宽度时,垂直对齐会突然.我期待当我设置padding-top属性时,它将填充占父容器高度的百分比,这在我们的情况下是基数,但是上面的50%的值是以百分比计算的.宽度.:(
有没有办法将填充和/或边距设置为高度的百分比,而无需使用JavaScript?
我只是学习CSS流体布局和响应式设计,我试图在布局中使用没有px值的所有百分比值.
到目前为止似乎有效,但在一个地方,我看到了一些我没想到的东西.我试图在两个垂直堆叠的div之间放置一个边距,这个div根据容器的高度而变化.当我垂直调整窗口大小时,我希望边距会改变,但如果你水平调整它,它也会增长,这是我不想要的.我错过了什么?
这是一个小提琴.感谢您的帮助.
在大多数浏览器(即ff,chrome,safari)上,我有一个非常奇怪的"问题".这是示例代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
html{
outline: 1px #0ff solid;
background: rgba(0,255,255,0.1);
}
body{
margin: 0;
padding: 0;
outline: 1px #00f solid;
background: rgba(0,0,255,0.1);
}
#aDiv{
width: 300px;
outline: 1px #f00 solid;
background: rgba(255,0,0,0.2);
}
#bDiv{
margin-top: 100%;
outline: 1px #0f0 solid;
background: rgba(0,255,0,0.1);
}
</style>
</head>
<body>
<div id="aDiv">
<div id="bDiv">
content
</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
当您更改#aDiv宽度时,#bDiv margin-top将更改为相同的值.我不知道它是如何可能的,高度是宽度.无论如何,也许你可以解释一下我发生了什么?
最好的祝福 ;)
D.
我有非常简单的标记和样式规则,应该把我的 div放在页面的中间,但它没有(实际上,div的顶部将位于中间,而不是100%真正垂直居中)当视口是足够小的高度.
HTML:
<div>adf</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
div {
background-color:red;
margin-top:50%;
}
Run Code Online (Sandbox Code Playgroud)
你可以看看我的小提琴看到这个.它需要缩小渲染窗口(右下角),因为它最初是正确的.