【发布时间】:2021-10-10 09:55:50
【问题描述】:
我知道可以使用:hover:after 选择器创建自定义“工具提示”,并通过将原始元素标记为position:relative 并将工具提示标记为absolute 来将此工具提示与原始元素对齐。
HTML:
test
<span custom-tooltip="testing a custom tooltip" class="tooltip">
test
</span>
test
CSS:
.tooltip {
position: relative;
}
.tooltip:hover:after {
content: attr(custom-tooltip);
position: absolute;
background: black;
color: white;
}
但是,我必须使用绝对值来定位或调整这个 :after 元素
top: 30px;
left: -30px;
width: 300px;
如果我想让元素尽可能宽怎么办(百分比是相对于父元素创建一个大的垂直框,所以我不能告诉它去width: 100%)
并且在父级下方居中(left: -50% 导致它向左移动父级的 50%,而不是居中)
如果没有 javascript,这可能吗? (如果没有,是否有一些魔术选择器或函数来获取这个或那个的宽度以及calc() 正确的值?
【问题讨论】:
-
您可以通过仅声明左值或右值来使其尽可能宽,而无需任何宽度。我之前曾尝试仅使用 CSS 使其居中,但无济于事。希望其他人有解决方案!
-
在我的测试中,如果你不给它一个特定的宽度,它仍然保持父对象的宽度(或者在
left:的情况下它一直持续到父对象的右边界) -
这是我前段时间做的一个纯CSS tooltip,宽度是灵活的。 joshuanhibbert.com/sandbox/css-tooltips
-
非常好,可惜如果这样定位它会滚出屏幕。
-
我不确定我是否理解您所说的滚出屏幕的意思?