为了账号安全,请及时绑定邮箱和手机立即绑定

css伪类定位的问题

css伪类定位的问题

西兰花伟大炮 2017-03-06 22:29:21
<!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贡献1064条经验 获得超383个赞

 top: 100%;    的100%是相对于它已定位的父元素.tooltiptex高

查看完整回答
反对 回复 2017-04-05
?
习惯受伤

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 元素下边。

查看完整回答
1 反对 回复 2017-03-06
?
guoyou

TA贡献28条经验 获得超30个赞

 top: 100%;    的100%是相对于它已定位的父元素.tooltiptex高,因为你父元素的高是28px, 所以设置 top: 28px;也可以得到相同的效果

查看完整回答
反对 回复 2017-03-06
  • 3 回答
  • 0 关注
  • 2876 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信