Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 我可以使用CSS在视口中垂直居中固定高度的DIV吗? 我们有一个登录页面,它被设计成一个垂直于页面中间的一个高达200像素的div。也就是说,它创建了一个从左到右的200像素蓝带(其中包含表单元素),理想情况下,无论浏览器窗口的大小如何调整,该蓝带都应保持在视口的垂直中心_Html_Css - Fatal编程技术网

Html 我可以使用CSS在视口中垂直居中固定高度的DIV吗? 我们有一个登录页面,它被设计成一个垂直于页面中间的一个高达200像素的div。也就是说,它创建了一个从左到右的200像素蓝带(其中包含表单元素),理想情况下,无论浏览器窗口的大小如何调整,该蓝带都应保持在视口的垂直中心

Html 我可以使用CSS在视口中垂直居中固定高度的DIV吗? 我们有一个登录页面,它被设计成一个垂直于页面中间的一个高达200像素的div。也就是说,它创建了一个从左到右的200像素蓝带(其中包含表单元素),理想情况下,无论浏览器窗口的大小如何调整,该蓝带都应保持在视口的垂直中心,html,css,Html,Css,这必须是一个CSS解决方案 让我们假设以下是一些示例标记: <body> <div id="mainDiv"> <div id="centerDiv" style="height:200px;background-color:blue;color:white"> Center this baby vertically in the #mainDiv, please! </div>

这必须是一个CSS解决方案

让我们假设以下是一些示例标记:

<body>
    <div id="mainDiv">
       <div id="centerDiv" style="height:200px;background-color:blue;color:white">
           Center this baby vertically in the #mainDiv, please!
        </div>
    </div>
</body>
即使在一个好的世界里,我们也应该能够用一些方式来解决这个问题。但引用《低俗小说》中的文·莱姆斯(Ving Rhames)的角色,我们真是太棒了!这根本不好


我查看了相关问题中提供的解决方案,并浏览了网络。我所能找到的任何东西都不能100%起作用。也许这是无法解决的,但我想我应该给这里的集体大脑这个问题,看看我是否能幸运。提前谢谢。

如果你有固定的高度,你可以这样做。给子div一个50%的顶部和一个-100px的边距顶部(反之亦然),您应该被设置。

要在中心进行真正的自动定位,内部
div
需要知道包含
div的边界。如果您的容器没有硬边界,则内部
DIV
无法自动计算其自身的位置。它根本没有参照系

我认为,使用简单的CSS解决方案,最接近的解决方案是:

    #mainDiv
    {

     border: 1px dashed #000000;   
    }

    #centerDiv
    {
        margin: 33% auto;
        height: 200px;          
    }
如果高度未知:


}

当你说“无论浏览器窗口的大小如何调整”,你的意思是,如果在加载页面后调整窗口的大小,div应该动态地重新居中吗?@RegDwight:是的,这正是我的意思。汤姆,这很有效,谢谢。事实上,我以前尝试过这个版本,但没有成功,但当我看到你的答案时,我又回头看了一遍代码,发现了一些错误,包括一个错误的“margin:auto 0”规则,它毁掉了整个过程。一旦我把它去掉,它就起作用了。多谢!这是一个很好的方法,请不要忘记添加
位置:绝对否则它将无法工作。
    #mainDiv
    {

     border: 1px dashed #000000;   
    }

    #centerDiv
    {
        margin: 33% auto;
        height: 200px;          
    }
.centerdiv{
   background:red;
   position:absolute;
   left: 50%;
   top: 50%;
   transform: translate(-50%, -50%);