将溢出-x设置为自动时将溢出-y设置为可见,以便内容可以垂直溢出父容器

守则

如果图像的父项悬停在图像上,我正在使用position: absoluteposition: relative在其上显示文本。父div所在的文本和图像容器设置为overflow-x: auto,从而使其具有水平滚动条。

我希望显示的文本垂直溢出#container元素(和水平滚动条),但是这没有发生-而是在容器中出现了垂直滚动条。

我不希望容器的高度扩展到文本的高度。

我已经尝试过申请overflow-y: visible#container但是并没有解决问题。如果我overflow-x: auto从中删除#container可解决此问题,但从中删除水平滚动条#container并将其放在上面body(我不想要)

function textVisibility(name) {
  var p = document.getElementById(name);
  if (p.style.display == "block") {
    p.style.display = "none";
  } else {
    p.style.display = "block";
  }
}
.div {
  margin: 5px;
  flex: 0 0 100px;
  position: relative;
}

img {
  width: 70%;
}

p {
  margin: 0;
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  display: none;
}

#container {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: visible;
}
<div id="container">

  <div class="div" onmouseenter="textVisibility(1);" onmouseleave="textVisibility(1)">
    <img src="https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_1280.png" />
    <p id="1">Some very long text Some very long text Some very long text Some very long text Some very long text
    </p>
  </div>
  <div class="div" onmouseenter="textVisibility(2);" onmouseleave="textVisibility(2)">
    <img src="https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_1280.png" />
    <p id="2">Some very long text Some very long text Some very long text Some very long text Some very long text
    </p>
  </div>
  <div class="div" onmouseenter="textVisibility(3);" onmouseleave="textVisibility(3)">
    <img src="https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_1280.png" />
    <p id="3">Some very long text Some very long text Some very long text Some very long text Some very long text
    </p>
  </div>
  <div class="div" onmouseenter="textVisibility(4);" onmouseleave="textVisibility(4)">
    <img src="https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_1280.png" />
    <p id="4">Some very long text Some very long text Some very long text Some very long text Some very long text
    </p>
  </div>
  <div class="div" onmouseenter="textVisibility(5);" onmouseleave="textVisibility(5)">
    <img src="https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_1280.png" />
    <p id="5">Some very long text Some very long text Some very long text Some very long text Some very long text
    </p>
  </div>
  <div class="div" onmouseenter="textVisibility(6);" onmouseleave="textVisibility(6)">
    <img src="https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_1280.png" />
    <p id="6">Some very long text Some very long text Some very long text Some very long text Some very long text
    </p>
  </div>

JsFiddle:https://jsfiddle.net/r3Lja69h/

陪同Afif

考虑使用position:fixed并在悬停时动态调整位置:

document.querySelectorAll('.div').forEach((div) => {
  div.addEventListener('mouseover', () => {
      var r = div.getBoundingClientRect();
      div.style.setProperty("--t", r.top+"px");
      div.style.setProperty("--l", r.left+"px");
      div.style.setProperty("--w", r.width+"px");
  });
});
.div {
  margin: 5px;
  flex: 0 0 100px;
  text-align:center;
  border:1px solid;
}

img {
  width: 70%;
}

p {
  margin: 0;
  position: fixed;
  top: var(--t,0);
  left:var(--l,0);
  width:var(--w,0);
  display:none;
}

#container {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
}
.div:hover p {
  display:block;
}
<div id="container">

  <div class="div">
    <img src="https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_1280.png" />
    <p>Some very long text Some very long text Some very long text Some very long text Some very long text
    </p>
  </div>
  <div class="div">
    <img src="https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_1280.png" />
    <p>Some very long text Some very long text Some very long text Some very long text Some very long text
    </p>
  </div>
  <div class="div">
    <img src="https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_1280.png" />
    <p>Some very long text Some very long text Some very long text Some very long text Some very long text
    </p>
  </div>
  <div class="div">
    <img src="https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_1280.png" />
    <p>Some very long text Some very long text Some very long text Some very long text Some very long text
    </p>
  </div>
  <div class="div">
    <img src="https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_1280.png" />
    <p>Some very long text Some very long text Some very long text Some very long text Some very long text
    </p>
  </div>
  <div class="div">
    <img src="https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_1280.png" />
    <p>Some very long text Some very long text Some very long text Some very long text Some very long text
    </p>
  </div>
  <div class="div">
    <img src="https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_1280.png" />
    <p>Some very long text Some very long text Some very long text Some very long text Some very long text
    </p>
  </div>
  <div class="div">
    <img src="https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_1280.png" />
    <p>Some very long text Some very long text Some very long text Some very long text Some very long text
    </p>
  </div>
  <div class="div">
    <img src="https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_1280.png" />
    <p>Some very long text Some very long text Some very long text Some very long text Some very long text
    </p>
  </div>

</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我可以将父容器设置为溢出:隐藏但只有特定的子元素表现得好像父容器是溢出:可见的吗?

溢出-x:隐藏将溢出-y设置为自动/滚动行为

将父div高度设置为不溢出的内容

将菜单溢出图标设置为白色

溢出y设置为可见,但行为类似于滚动

设置边框轮廓,将外部溢出设置为隐藏

溢出设置为自动时,工具提示会被裁剪

将所有 powerpoint 文本框上的 VBA 代码设置为“溢出时收缩文本”选项

Javascript/React:溢出 X 可见,溢出 Y 自动

将溢出的图像居中

将溢出图像垂直居中

将div设置为窗口的100%,而不会出现内容溢出

当容器溢出-y为自动且容器未溢出时如何不查看背景

CSS / JS:默认情况下(!)如何将溢出-x 设置为自动水平的块元素滚动到最右侧?

将隐藏更改为自动溢出属性时避免混蛋

尽管孩子的溢出设置为“自动”,但容器内的项目不会留在父项内

为父div设置了带有溢出x的位置粘性

下拉菜单不显示?设置为溢出时,右侧显示空白:可见

如何在溢出设置为可见时显示线性渐变的边界半径 - React Native IOS

当 tbody 设置为其容器的宽度时,我可以在 tbody 溢出时实现水平滚动吗?

溢出:在容器外部可见

将隐藏的溢出替换为“ ...”

代号一个溢出菜单将scrollabel设置为false

如何将文本重叠的背景设置为白色,而外面溢出则以不同的颜色?

通过单击菜单将溢出设置为隐藏在身体上

当我缩放一个元素时,我想看到垂直溢出但设置不可见水平溢出

溢出y隐藏中断溢出x可见

溢出-x 隐藏和溢出-y 可见

Webkit错误:将子元素调整为匹配大小后,溢出会自动触发