<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<style>
.tooltip {
position: relative;
display: inline-block;
border-bottom: 1px dotted black;
}
.tooltip .tooltiptext {
visibility: hidden;
width: 120px;
background-color: black;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 5px 0;
position: absolute;
z-index: 1;
bottom: 150%;
left: 50%;
margin-left: -60px;
}
.tooltip .tooltiptext::after {
content: "";
position: absolute;
top: 100%;
left: 50%;
margin-left: -5px;
border-width: 5px;
border-style: solid;
border-color: black transparent transparent transparent;
}
.tooltip:hover .tooltiptext {
visibility: visible;
}
</style>
<body style="text-align:center;">
<h2>顶部提示框/底部箭头</h2>
<div class="tooltip">鼠标移动到我这
<span class="tooltiptext">提示文本</span>
</div>
</body>
</html>after里面的top是怎么来定位,让三角和上面的框衔接?搞不懂原因
3 回答
习惯受伤
TA贡献885条经验 获得超1144个赞
.tooltiptext 的 after 是根据 .tooltiptext 为相对位置布局,下边这句
border-width: 5px; border-style: solid; border-color: black transparent transparent transparent;
是实现三角的重要代码。
在 .tooltiptext::after 中没有定义三角的宽高,而上边定义了 border-width: 5px; 导致 .tooltiptext::after 的宽高变成了 10,只有最上边颜色为 black,所以就显示了倒三角。
.tooltiptext::after 中 这一句:top: 100%; left: 50%; margin-left: -5px; 将倒三角布局在了 .tooltiptext 元素的下边中间, 因为宽高为 10px,向左移动5px,恰好在中间。
top:100%; 100% 就是 .tooltiptext 元素的高度,所以贴在 .tooltiptext 元素下边。
guoyou
TA贡献28条经验 获得超30个赞
top: 100%; 的100%是相对于它已定位的父元素.tooltiptex高,因为你父元素的高是28px, 所以设置 top: 28px;也可以得到相同的效果
- 3 回答
- 0 关注
- 2876 浏览
相关问题推荐
添加回答
举报
0/150
提交
取消