html - 内联 block 内的绝对 div,相对父 div 占用兄弟的宽度

标签 html css

考虑这个标记和样式:

.container {
  border: 1px dashed red;
  position: relative;
  display: inline-block;
}

.sibling {
  border: 1px dashed green;
}

.tooltip {
  border: 1px dashed purple;
  position: absolute;
  max-width: 100px;
}
<div class="container">
  <div class="sibling">
    sibling
  </div>
  <div class="tooltip">
    Some text look how skinny it is
  </div>
</div>

Here's a codepen with the exact stuff

基本上,工具提示似乎采用了 sibling 的宽度——Boooo!我希望工具提示根本没有宽度。

如果我从容器中删除 display: inline-block; ,问题不再存在,但我需要容器是内联 block 。所以我的问题是如何将绝对定位的 div 添加到内联 block 、相对定位的父 div,而绝对 div 不会在兄弟 div 的宽度处破坏其文本。

编辑

如果需要,工具提示还应支持最大宽度,这样 white-space: nowrap; 将不起作用 :(

最佳答案

您是否尝试过简单地从父项中删除 position: relative

假设您希望在将鼠标悬停在同级上时显示工具提示,您可以使用以下方法:

.container {
  border: 1px dashed red;
  display: inline-block;
  margin: 50px;
  position: relative;
}

.sibling {
  border: 1px dashed green;
}

.tooltip {
  display: none;
  position: absolute;
  width: 100vh;
}

.tooltip .content {
  border: 1px dashed purple;
  display: inline-block;
  padding: 3px;
}

.sibling:hover ~ .tooltip {
  display: block;
}
<div class="container">
  <div class="sibling">
    sibling
  </div>
  <div class="tooltip">
    <div class="content">
      Some text
    </div>
  </div>
</div>

<div class="container">
  <div class="sibling">
    another sibling
  </div>
  <div class="tooltip">
    <div class="content">
      Lorem ipsum dolor sit amet, no vivendum iudicabit per, libris elaboraret ei qui. Mei cibo mollis repudiandae et. Vix ne unum docendi rationibus, doming doctus scripta mei ea. Sed ne zril integre sanctus, cu doming semper omittantur mea. Te adhuc falli ius. Eam ad ceteros nostrum perpetua.
    </div>
  </div>
</div>

关于html - 内联 block 内的绝对 div,相对父 div 占用兄弟的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52846433/

相关文章:

android - 绝对定位元素在相对 div 内未正确对齐

javascript - 手动删除某些元素后如何刷新 Bootstrap 缩略图

html - 文本居中,即使大于容器

javascript - 使用 setInterval 函数定位 div

javascript - 如何为用户创建搜索字段并自动填充 html 列表

html - 将自定义 HTML 导入 Blogger/Blogspot 时出现错误消息

html - 导航栏在响应 View 中推送下面的内容(Bootstrap 4)

html - 如何在 CSS/HTML 中将文本/内容放在导航栏下方

css - "Color Scheme"和 "Color Palette"有区别吗?

javascript - CSS Transition 没有缓和