修复CSS实现的hover触发问号帮助提示背景透明问题
问题原因
你写的提示框样式缺少定位属性和层级控制,导致提示框被页面其他元素压在下层,视觉上表现为背景透明;也可能存在其他全局样式覆盖了提示框的背景透明度设置。
解决方法
按如下规则修改CSS即可:
- 给提示图标父容器
.help-tip添加相对定位,作为提示框的定位参照物 - 给提示内容标签
<p>添加绝对定位、足够高的层级值,同时强制设置背景不透明度为1 - 给提示框的箭头伪元素也添加绝对定位,保证箭头显示位置正确
修改后的完整CSS代码如下:
/*------------------------- Inline help tip --------------------------*/ .help-tip-wrapper{ padding-top: 15px; padding-left: 5px; } .help-tip{ position: relative; /* 新增:相对定位作为子元素定位参照物 */ text-align: center; background-color: #BCDBEA; border-radius: 50%; width: 24px; height: 24px; font-size: 14px; line-height: 26px; cursor: default; } .help-tip:before{ content:'?'; font-weight: bold; color:#fff; } .help-tip:hover p{ display:block; -webkit-animation: fadeIn 0.3s ease-in-out; animation: fadeIn 0.3s ease-in-out; } .help-tip p{ position: absolute; /* 新增:绝对定位 */ z-index: 999; /* 新增:足够高的层级保证在所有元素最上层 */ opacity: 1; /* 新增:强制不透明 */ display: none; background-color: #1E2021 !important; /* 加!important避免被其他样式覆盖 */ padding: 20px; width: 300px; border-radius: 3px; right: -4px; color: #FFF; font-size: 13px; line-height: 1.4; } .help-tip p:before{ position: absolute; /* 新增:绝对定位保证箭头位置正确 */ content: ''; width:0; height: 0; border:6px solid; border-bottom-color:#1E2021; right:10px; top:-12px; } .help-tip p:after{ position: absolute; /* 新增:绝对定位 */ width:100%; height:40px; content:''; top:-40px; left:0; }
如果修改后仍有透明问题,可以检查你项目中定义的fadeIn动画,确认最终帧的透明度设置为opacity: 1即可。
内容的提问来源于stack exchange,提问作者kakakakakakakk
相关产品推荐
相关产品推荐

