css - 绝对定位元素的最大宽度

标签 css css-position absolute

我有一个居中的 div(使用绝对定位和 transform:translate(-50%,-50%),如 here 所述)。当子 div 的内容很短时,一切正常。当内容很长时,子 div 宽度被限制为容器 div 的 50%(可能是因为 left 设置为 50%)。

有没有办法让子div只有在内容很长的时候才展开到全宽?

.container {
  position: relative;
  display: inline-block;
  width: 200px;
  height: 200px;
  margin-left: auto; 
  margin-right: auto;
  border: 2px solid black;
}

.child {
  position: absolute;
  transform: translate(-50%, -50%);
  left:50%;
  top:50%;
  background:lightgreen;
}
<div class="container">
  <div class="child">short</div>
</div>

<div class="container">
  <div class="child">long long long long long long long</div>
</div>

编辑:我在 this 中找到了帮助我解决这个问题的解释。回答。

最佳答案

只需将 display: table 添加到子 div,这应该会为您提供所需的结果。

.container {
  position: relative;
  display: inline-block;
  width: 200px;
  height: 200px;
  margin-left: auto; 
  margin-right: auto;
  border: 2px solid black;
}

.child {
  display: table;
  position: relative;
  transform: translate(-50%, -50%);
  left: 50%;
  top: 50%;
  background:lightgreen;
}
<div class="container">
  <div class="child">short</div>
</div>

<div class="container">
  <div class="child">long long long long long long long</div>
</div>

如果你可以使用flexbox,你也可以这样做:

.container {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: top;

  width: 200px;
  height: 200px;
  border: 2px solid black;
}

.child {
  background:lightgreen;
}
<div class="container">
  <div class="child">short</div>
</div>
<div class="container">
  <div class="child">long long long long long long long</div>
</div>

关于css - 绝对定位元素的最大宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46091426/

相关文章:

html - 相对div高度

css - 做 `div::after {content: ""; 高度 : 100% }` only works when ` div {position: absolute;}`?

css - :before pseudo element with IE 11< vs. 所有其他浏览器的绝对位置问题

html - 如何在悬停时将 CSS 类应用于动态生成的提交按钮?

c# - 如何使div整个页面宽度并将其他元素向下移动?

javascript - 如果元素有类,是否可以在 CSS 中禁用悬停事件?

jquery - 水平居中div

html - 浏览器和 z-index 问题

html - 对齐列表以在每一行上获得 100% 的宽度

css - 什么时候不应该触发媒体查询?