【发布时间】:2020-06-11 18:16:41
【问题描述】:
我有一个绝对定位的 div,它使用translate 水平和垂直对齐。我的代码的问题是 max-width 似乎不适用于这个 div。它总是小于我为max-width 设置的值。其实我也想让 div 响应,所以不能使用width 属性,否则会出现水平滚动条。我还尝试了width:100% 和max-width:500px,但仍然没有运气。如何强制 max-width 工作以使 div 能够响应?
目标
- Div 必须像现在使用
absolute和translate一样保持水平和垂直居中对齐 - 当浏览器窗口宽度大于此值时,Div 必须拉伸到
max-width值,即 500 像素。 - 当浏览器窗口缩小时,Div 宽度必须减小以适应浏览器宽度 - 这将使我的 div 响应。
这是我的代码/演示:
.center {
border:1px solid red;
max-width:500px;
height:150px;
position:absolute;
top:50%;
left:50%;
-ms-transform:translate(-50%, -50%);
-webkit-transform:translate(-50%, -50%);
-o-transform:translate(-50%, -50%);
-moz-transform:translate(-50%, -50%);
transform:translate(-50%, -50%);
text-align:center;
}
<div class="center">This div is horizontally & vertically center aligned.<br />The text is also horizontally center aligned.</div>
更新
每个人都在这里建议我无用且不相关的解决方案。请尝试通过以下图片理解问题:
仅使用 width:500px 时:
仅使用 max-width:500px 时:
同时使用 max-width:500px 和 width:100% 时:
问题:即使我同时使用 max-width:500px 和 width:100%(请参阅水平滚动条),div 也不会保持响应:
【问题讨论】:
-
使用宽度和溢出:隐藏
-
我认为只要我们使用 translate 将 div 居中对齐,就没有人能够修复它。我可能必须切换到具有绝对位置的 -ve 边距。
-
请看我的更新。