在容器中有一个绝对放置且完全居中(“翻译技巧”)的div:jsfiddle。
<div id='container'>
<div id='content'>
<p>
centered...
</p>
</div>
</div>
#container{
position: relative;
width: 400px;
height: 400px;
background-color: gray;
}
#content{
position: absolute;
width: 100px;
height: 100px;
top: 50%;
left: 50%;
border: 1px solid red;
transform: translate(-50%, -50%);
}
现在当这个内部div变得比它的容器大并且容器有溢出时:auto(滚动)。通过向左和向上滚动它及其最大值jsfiddle,无法使内部div的最顶部和左侧部分在容器内变得可见。
#container{
...
overflow: auto;
}
#content{
...
width: 500px;
height: 500px;
...
}
当内部div缩放到溢出容器div的比例时,会发生“相同”的事情:jsfiddle。
#container{
...
overflow: auto;
}
#content{
...
transform: ... scale(5);
}
关于如何让内部div保持居中并且仍然能够通过使用容器div的滚动条到达其所有区域的任何想法?或者当大小溢出容器时可能会丢弃“居中”(可能使用javascript)?纯css解决方案是首选。
答案 0 :(得分:0)
您可以使用一些绝对定位来进行居中,最大高度和最大宽度,并将滚动放在内部容器上,如下所示:
https://jsfiddle.net/hnzo2sa4/
.container {
position: relative;
background-color: gray;
margin: 10px;
}
.bigger {
width: 300px;
height: 300px;
}
.same {
width: 200px;
height: 200px;
}
.smaller {
width: 100px;
height: 100px;
}
.content {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
width: 200px;
height: 200px;
max-width: 100%;
max-height: 100%;
background: rgba(987, 654, 321, .6);
overflow: scroll;
}
&#13;
<div class="container bigger">
<div class='content'>
<p>centered...</p>
<p>centered...</p>
<p>centered...</p>
<p>centered...</p>
</div>
</div>
<div class="container same">
<div class='content'>
<p>centered...</p>
<p>centered...</p>
<p>centered...</p>
<p>centered...</p>
</div>
</div>
<div class="container smaller">
<div class='content'>
<p>centered...</p>
<p>centered...</p>
<p>centered...</p>
<p>centered...</p>
</div>
</div>
&#13;