html - 居中绝对定位的子元素

标签 html css

<分区>

我需要将内联 block 的子元素水平居中。问题是子子菜单的宽度可变,可以比其父菜单宽。我最初的解决方案是将子元素设置为 -50 像素的左右宽度,但这并不是真正的可变宽度,而是静态地将其设置为比其父元素宽 100 像素。

.main-menu {
    text-align: left;
    margin: 0;
    padding: 0;
    font-size: 0px;
    font-size: 0rem;
}
.main-menu li {
    font-size: 18px;
    font-size: 1.8rem;
    line-height: 1em;
    list-style-type: none;
    text-align: center;
    display: inline-block;
    zoom: 1;
    padding: 0 25px;
    position: relative;
}
li > a {
    display: inline-block;
    zoom: 1;
    padding: 21px 0 19px;
    font-family: "Open Sans", sans-serif;
    font-weight: 400;
    color: #282828;
    font-size: 16px;
    font-size: 1.6rem;
    line-height: 1.2em;
    text-decoration: none;
    -webkit-transition: all .25s ease-in-out, background-image 0s, background-position 0s;
    transition: all .25s ease-in-out, background-image 0s, background-position 0s;
}
.sub-menu {
    position: absolute;
    top: 100%;
    left: -50px;
    right: -50px;
    max-width: 250px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 0;
    min-width: 150px;
    background-color: white;
    text-align: left;
    padding: 17px 0;
    box-shadow: 0 2px 5px #dcdcdc inset;
    border-top: 18px solid #ffdd00;
  }
<ul class="main-menu clearfix"><li id="menu-item-657" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children first menu-item-657">
<li id="menu-item-657" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children first menu-item-657"><a href="link">Solutions</a>
<ul class="sub-menu">
	<li id="menu-item-220469" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-220469"><a href="link">Solutions</a></li>
	<li id="menu-item-18009" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-18009"><a href="link">How It Works</a></li>
	<li id="menu-item-10344" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-10344"><a href="link">Why Use It</a></li>
	<li id="menu-item-3375" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3375"><a href="link">Products</a></li>
</ul>
</li>
 </ul> 

最佳答案

在这种情况下,我通常会这样做:

.parent {
    /*....your existing css...*/
    position: relative;
}
.sub-menu {
    display: block;
    left: 50%;
    text-align: center;
    position: absolute;
    transform: translateX(-50%);
}
<div class="parent">
  <div class="sub-menu">
    Centered
  </div>
</div>

关于html - 居中绝对定位的子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39450370/

上一篇:html - 自定义选择框在 IE 中无法正常工作

下一篇:html - 在 rails 中的标签后添加图像

相关文章:

html - 如何在跨度内垂直对齐这些元素?

jquery - 滚动时文本如何改变颜色?

jquery - 刺耳的切换效果

html - 图像在高分辨率下不会展开整个宽度

javascript - 使用jquery在不同位置显示来自php的不同div

javascript - 在加载任何 html 元素之前加载图像

c# - Web 应用程序在本地计算机上运行,​​但在 ASP.NET 中的 Web 服务器上出错

javascript - 网上网站截图

jquery - 如何让我的应用程序在动画期间不挂起?

css - !important 在混合中