![](/img/trans.png)
[英]How to horizontally center an absolutely positioned div over its relatively positioned parent?
[英]Is it possible to center an element that's wider than its parent and absolutely positioned without Javascript?
基本HTML / CSS-JSFiddle : https : //jsfiddle.net/tae8pc1g/2/
真的是所有标题。 JSFiddle中所有重要的代码如下:
<div class="example-button">Menu Button
<ul class="example-menu">
<li>This is</li>
<li>some example</li>
<li>dynamic</li>
<li>content</li>
</ul>
</div>
的CSS
.example-button {
position: relative;
display: inline-block;
}
.example-menu {
position: absolute;
display: inline-block;
top: 100%;
}
仅使用HTML和CSS,是否可以将.example-menu
相对于.example-button
的宽度居中,即使它比.example-button
宽呢?
是的,可以使用:
1-对于未知宽度:
left: 50%;
transform: translateX(-50%);
2-对于已知宽度:
left: 50%;
margin-left: -(width/2)
这是一个可以工作的JSFiddle
body { text-align: center; } .example-button { position: relative; padding: 15px; border-radius: 5px; background: gray; display: inline-block; text-align: left; } .example-menu { position: absolute; display: inline-block; top: 100%; background: blue; margin:0; padding: 10px 70px; list-style: none; left: 50%; -webkit-transform: translateX(-50%); transform: translateX(-50%); }
<div class="example-button">Menu Button <ul class="example-menu"> <li>Please</li> <li>center</li> <li>me!</li> </ul> </div>
它可能被认为是一种hack,但是使用纯CSS可以将其放在example-button类上:
left: 50%;
transform: translateX(-50%);
参见https://jsfiddle.net/08fqfhum/
注意:由于它使用CSS转换,因此无法在旧版浏览器(IE8)上使用。 对于某些浏览器(例如Safari),您也需要添加transform属性的前缀版本:
-webkit-transform: translateX(-50%);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.