如何通过JavaScript获取HTML阴影元素的尺寸
How get dimension of HTML shadow element via JavaScript
我通过纯CSS3显示工具提示,但我唯一的问题是工具提示的内容确实有不同的长度。有的只有一行,有的长达4行。
现在这些工具提示阴影DOM元素,所以我怎么能得到(不同的)这些工具提示的高度通过JavaScript(或纯CSS解决方案会更好(也许CSS calc?))来调整所有的工具提示有从锚元素的边距?
HTML:<a href="#" data-title="This is one example tooltip">Test #1</a>
<a href="#" data-title="This is one example tooltip - This is one example tooltip [...]">Test #2</a>
CSS: a:before {
content: attr(data-title);
position: absolute;
background: blue;
padding: 7px 10px;
width: 440px;
max-height: 72px;
text-align: left;
line-height: 18px;
margin: 0 0 0 0;
opacity: 0;
color: white;
transition: opacity 0.15s ease-out 0.25s, margin-top 0.15s ease-out 0.25s;
}
a:hover:before {
opacity: 1;
margin-top: -40px;
transition: opacity 0.2s ease-out 0.5s, margin-top 0.2s ease-out 0.5s;
}
现场演示:http://jsfiddle.net/qq3YJ/
这是jsfiddle的解决方案:http://jsfiddle.net/kwJz9/2/
我是这样做的:
-
使
a
相对,因此这意味着a:before
元素将具有相对于其父元素a
的位置。 -
为了将工具提示放在链接下面,我使用了
bottom
属性而不是margin-top
。因为我用position: relative
链接-这意味着bottom:0
,例如它是当工具提示有它的下边框在父a
的下边框的右边。 -
因为你想在链接下看到工具提示-在
:hover
中,我将bottom
更改为1.4em
,这是在文本下的一点点(.4em
将是它们之间的距离)。 -
因为你想看到动画,我把
transition
改为包含bottom
属性而不是'margin-top' -
最后一个问题是,因为你有
:before
元素总是在html流-在第二个工具提示的情况下(这是大的)-它占用比a
更多的空间,所以当你悬停它(不是链接)-你可以看到它。所以我也添加了visibility: hidden
到:before
元素,以确保如果鼠标将在它上面,你不会看到它。
相关文章:
- CKEditor Widget-阻止编辑可编辑元素本身
- 如何设置html元素填充的动画
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 使用clickToggle并在单击另一个元素时关闭元素
- 单击时将焦点更改为元素
- 带有填充属性的SVG矩形显示在包含元素的上方插入框阴影
- 聚合物自定义元素阴影 DOM 问题
- 聚合物阴影DOM 元素的基于类的 CSS 样式
- 为一组元素逐个设置放置阴影的动画
- Javascript-准确获取元素框阴影细节
- 我如何在safari中找到阴影DOM元素?(聚合物)
- 框阴影在输入元素上消失
- 在SVG路径上生成内阴影效果元素/三角形的两条边
- 如何通过JavaScript获取HTML阴影元素的尺寸
- 使用流星访问阴影DOM聚合物元素
- 如何在滚动时将jQuery阴影函数应用于具有相同类名的多个元素
- 找到元素DOM的根节点(阴影或光)的最佳方法是什么?
- 在自定义元素中使用聚合物阴影dom的问题
- 如何在鼠标悬停在另一个元素上时使文本发光(没有文本阴影)