html - 信息框内溢出 :hidden container should be visible outside

标签 html css

我有一个 div 表格,里面有很多内容,因为我添加了 overflow:hidden 所以表格是可滚动的。

我在里面有一个信息链接,悬停时会显示一些额外的信息。

问题是,表格第一行的信息框很可能在表格之外,这部分被切断了。

如何在不删除 overflow:hidden 或使用 JS 的情况下使表格外的隐藏信息框可见?

.outertable{
    display:block;
    overflow-x:auto !important;
}

.info:hover:after{
    background: rgba(75,75,75, 0.85);
    bottom: 32px;
    color: #fff;
    content: attr(data-tooltip);
    left: -100px;
    position: absolute;
    z-index: 999;
    width: 200px;
}

这是 jsfiddle 上的一些小例子: https://jsfiddle.net/0tcbadk8/10/

.outertable {
  box-shadow: 3px 3px 7px -3px rgba(0, 0, 0, 0.30);
  display: block;
  overflow-x: auto !important;
}

div.table {
  display: table;
  width: 100%;
  background-color: rgba(0, 0, 0, 0.3);
  border-radius: 10px;
}

div.tr {
  display: table-row;
}

div.maintr {
  display: table-row;
}

.maintr .td {
  padding: 15px 5px;
}

div.td {
  display: table-cell;
  padding: 10px 5px;
  text-align: center;
  vertical-align: middle;
}

.info {
  display: inline;
  position: relative;
}

.info:hover:after {
  background: #333;
  background: rgba(75, 75, 75, 0.85);
  border-radius: 5px;
  bottom: 32px;
  color: #fff;
  content: attr(data-tooltip);
  left: -100px;
  padding: 15px 25px;
  position: absolute;
  z-index: 999;
  width: 200px;
}

.info:hover:before {
  border: solid;
  border-color: #4b4b4b transparent;
  border-width: 12px 12px 0 12px;
  bottom: 20px;
  content: "";
  left: 0%;
  position: absolute;
  z-index: 99;
}
<br/><br/><br/><br/><br/><br/>

<div class="outertable">
  <div class="table offerstyle">
    <div class="tr">
      <div class="td fixinfonooverflow"></div>
      <div class="td"></div>
      <div class="td"></div>
      <div class="td"></div>
      <div class="td"></div>
    </div>
    <div class="tr">
      <div class="td"><img class="" data-original="images/logo/3.png" title="" alt="" src="images/logo/3.png" style=""></div>
      <div class="td"><a href="/landingpage.html" target="_blank">BLABLABLA</a></div>
      <div class="td">
        <div class="nonewline more_info" title="4.8 von 5 Sternen und 5 Bewertungen"><i class="fa fa-star ratingtwo" aria-hidden="true"></i><i class="fa fa-star ratingtwo" aria-hidden="true"></i><i class="fa fa-star ratingtwo" aria-hidden="true"></i><i class="fa fa-star ratingtwo" aria-hidden="true"></i><i class="fa fa-star-half-o ratingtwo"
            aria-hidden="true"></i></div>
      </div>
      <div class="td">
        <a class="info" data-tooltip="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque a est ut justo interdum efficitur at id tortor. Cras lacinia, sapien sit amet suscipit sodales, mi velit bibendum risus, at dictum ligula mauris vel dui."><i class="fa fa-info-circle" aria-hidden="true"></i> info</a>
      </div>
      <div class="td">TEST<br>TEST2<br>TEST3<br></div>
    </div>
    <div class="tr">
      <div class="td fixinfonooverflow"></div>
      <div class="td"></div>
      <div class="td"></div>
      <div class="td"></div>
    </div>
  </div>
</div>

最佳答案

我看到 3 个选项:

1) 如果您知道信息框的内容并且内容是固定大小的,您可以增加表格的间距以适应信息框的大小以保持“内部”。

2) 快速解决方案:您可以在信息框上使用 position: fixed 而不是 position: absolute ,如果它符合您的需要(不会滚动)随着内容的变化,它将保持不变。

.info:hover:after{
    background: #333;
    background: rgba(75,75,75, 0.85);
    border-radius: 5px;
    color: #fff;
    content: attr(data-tooltip);
    left: 400px;
    top: 0;
    padding: 15px 25px;
    position: fixed;
    z-index: 999;
    width: 200px;
}
.info:hover:before{
    border: solid;
    border-color: #4b4b4b transparent;
    border-width: 12px 12px 0 12px;
    content: "";
    left: 420px;
    top: 173px;
    position: fixed;
    z-index: 99;
}

更新的 jsfiddle:https://jsfiddle.net/0tcbadk8/27/

3) 使用 jQuery/Javascript 动态创建信息框,并根据触发元素的位置定位它,检查它是否溢出表格边界并重新定位。同时它可以放在标记中的 overflow:hidden 容器之外。

关于html - 信息框内溢出 :hidden container should be visible outside,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51064178/

相关文章:

javascript - 检测鼠标指针是否在伪元素之上?

javascript - 如何强制 Jquery 在检查 NOT CHECKED 之后最后检查 CHECKED 框?

php - 从 MYSQL 数据库检索值以显示在单选按钮中

css - Bootstrap navbar active item 显示 border-bottom like blog example

javascript - 如何安装这些js库

html - 垂直拉伸(stretch)div内的div

css - 带有 svg 的响应式 flex 列

css - 在导航栏中放置两张图片,一张在左边,一张在右边

javascript - Escape键功能代替按钮onclick

javascript - d3js : Apply animation together on bubbles and texts