gpt4 book ai didi

css - 固定容器中居中对齐、可滚动的 div

转载 作者:行者123 更新时间:2023-11-28 17:44:19 25 4
gpt4 key购买 nike

我正在努力将 div 中的 divposition:fixed 集中对齐(我需要它固定,因为这个 UI 会 float 在现有页面的其余部分)。中央 div 将包含大量内容,因此需要垂直滚动。它还需要相对于具有最大宽度的视口(viewport)水平缩放。

这是我目前所拥有的 - 它几乎就在那里 - 只是不知道如何集中黄色 div

http://jsfiddle.net/p7F3u/

编辑 如果可能,我需要支持 IE9、FF、Chrome、Safari

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Test</title>
<style>
div {
padding: 0px;
margin: 0px;
}
#fix {
position: fixed;
left: 0px;
right: 0px;
top: 0px;
bottom: 0px;
background-color: red;
}
#my-wrap {
position: relative;
margin: 1em auto;
background-color: green;
width: 100%;
height: 100%;
}
#my-details {
position: absolute;
width: 50%;
max-width: 450px;
top: 20px;
background-color: yellow;
bottom: 0px;
overflow: scroll;
}
</style>
</head>
<body>
<div id="fix">
<div id="my-wrap">
<div id="my-details">
<p>Lots of content in here....</p>
<br style="clear: both" />
</div>
</div>
</div>
</body>
</html>

谢谢!

最佳答案

最简单的方法是相对定位 #my-details 元素,而不是绝对定位它。然后您可以简单地使用 margin:0 auto 使元素居中。由于该元素不再是绝对定位的,因此您需要为其指定 100% 的高度。要替换 top:20px,您可以像这样简单地使用 calc():height: calc(100% - 20px)

Exmaple Here

#my-details {
position:relative;
margin:0 auto;
height:calc(100% - 20px);
width: 50%;
max-width: 450px;
top: 20px;
background-color: yellow;
bottom: 0px;
overflow: scroll;
}

作为替代方案,您可以将 top:20px 更改为基于百分比的值,例如 2%。然后,您可以简单地使用 98% 的高度,而不必使用 calc()。由于这可能不是最佳解决方案,您还可以使用以下方法:

Example Here

#fix {
padding-top:1em;
}
#my-wrap {
padding-top:20px;
}

基本上,此方法通过在父元素上添加 padding-top 值来避免 top:20pxthat 元素的父级随后接收 1empadding-top 值以取代 margin: 1em auto

关于css - 固定容器中居中对齐、可滚动的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23527476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com