纯CSS实现tooltip提示框,CSS箭头及形状之续篇--给整个tooltip提示框加个边框

  在前面一篇中我们介绍了纯CSS实现tooltip提示框,通俗的讲也就是CSS箭头及形状

  不过注意一点是,他始终是一个元素,只是通过CSS实现的,今天我们要说的是给这个“tooltip提示框”整体加一个边框,下面是是一篇完成的截图(不了解的可以看看:纯CSS实现tooltip提示框,CSS箭头及形状):

首先像:after一样我们介绍另外一个CSS中“ :before ”选择器

定义和用法:(参考w3school:before选择器)

  :before 选择器在被选元素的内容前面插入内容,使用 content 属性来指定要插入的内容

例:

p:before
{ 
content:"台词:-";
background-color:yellow;
color:red;
font-weight:bold;
}
View Code

 

下面一步一步实现给该tooltip整体添加边框:

首先HTML代码:

<body>
    <div class="demo"></div>
</body>
View Code

让我们来设置盒子的样式

<style>
        .demo{
            background-color: gray;
            height: 100px;
            position: relative;
            width: 100px;
        }    
</style>
View Code

截图:

(其中具体的position的设定缘由大家看前一篇的解释,谢谢~~)

 

接着“引入”箭头,注意这里要同时用到“ :after ”和“ :before ”两个CSS选择器同时产生不同尺寸的箭头,基本样式:

<style>
            .demo{
                background-color: gray;
                height: 100px;
                position: relative;
                width: 100px;
            }
        .demo:after,.demo:before{
            content:'';
            position:absolute;
        }
        .demo:after{
            height:20px;
            width:20px;
            background:yellow;
        }        
            .demo:before{
            height:30px;
            width:30px;
            background:green;
        }    
</style>
View Code

截图:

 

继续,我们要给黄色方块和绿色方块设置边框,样式:

<style>
            .demo{
                background-color: gray;
                height: 100px;
                position: relative;
                width: 100px;
            }
        .demo:after,.demo:before{
            content:'';
            position:absolute;
        }
        .demo:after{
            height:20px;
            width:20px;
            background:yellow;

            border:5px  solid lightgreen;
        }        
            .demo:before{
            height:30px;
            width:30px;
            background:green;

            border:5px solid red;
        }    
</style>
View Code

截图:

 

再者我们将黄色方块和绿色方块内容去掉,通过去掉:after和:before的height、width,仅剩下浅绿色方框和红色方框,分别是黄色方块、绿色方块的边框,样式:

<style>
            .demo{
                background-color: gray;
                height: 100px;
                position: relative;
                width: 100px;
            }
        .demo:after,.demo:before{
            content:'';
            position:absolute;
        }
        .demo:after{
            //height:20px;
            //width:20px;
            background:yellow;

            border:5px  solid lightgreen;
        }        
            .demo:before{
            //height:30px;
            //width:30px;
            background:green;

            border:5px solid red;
        }    
</style>
View Code

截图:

这里注意红色的边框被覆盖了,所以我们需要给浅绿色方块和红色方块增加像素,但是增加的像素值彼此不相同,为后续做准备,样式:

<style>
            .demo{
                background-color: gray;
                height: 100px;
                position: relative;
                width: 100px;
            }
        .demo:after,.demo:before{
            content:'';
            position:absolute;
        }
        .demo:after{
            //height:20px;
            //width:20px;
            background:yellow;

            border:10px  solid lightgreen;
        }        
            .demo:before{
            //height:30px;
            //width:30px;
            background:green;

            border:15px solid red;
        }    
</style>
View Code

截图:

注意,这里我们将浅绿色的边框像素值由5px改为了10px;而红色边框由5px改为了15px,如上图,但值得小心的是区分这里的浅绿色方框、红色方框与上面的黄色方块、绿色方块样子相同,但性质却截然不同,一种是边框,一种是方块~~而实现箭头是通过边框来实现的,原理参见上一篇纯CSS实现tooltip提示框,CSS箭头及形状

 

下面来实现箭头,样式:

<style>
            .demo{
                background-color: gray;
                height: 100px;
                position: relative;
                width: 100px;
            }
        .demo:after,.demo:before{
            content:'';
            position:absolute;
        }
        .demo:after{
            //height:20px;
            //width:20px;
            //background:yellow;

            //border:10px  solid lightgreen;
            border:10px  solid transparent;
            border-top-color:lightgreen;
        }        
            .demo:before{
            //height:30px;
            //width:30px;
            //background:green;

            //border:15px solid red;
            border:15px solid transparent;
            border-top-color:red;
        }    
</style>
View Code

截图:

 

然后我们通过position:absolute的top、right、bottom、left,以下简称TRBL来设置箭头及边框(这里指红色边框,即将成为箭头的边框)的位置,样式:

<style>
            .demo{
                background-color: gray;
                height: 100px;
                position: relative;
                width: 100px;
            }
        .demo:after,.demo:before{
            content:'';
            position:absolute;
        }
        .demo:after{
            //height:20px;
            //width:20px;
            //background:yellow;

            //border:10px  solid lightgreen;
            border:10px  solid transparent;
            border-top-color:lightgreen;
            top:100px;
            left:20px;
        }        
            .demo:before{
            //height:30px;
            //width:30px;
            //background:green;

            //border:15px solid red;
            border:15px solid transparent;
            border-top-color:red;
            top:100px;
            left:15px;
        }    
</style>
View Code

截图:

 

接着来设置灰色盒子的边框为红色,边框大小与红色相同,同时将箭头浅绿色改为灰色,使其看起来浑然一体,样式:

<style>
            .demo{
                background-color: gray;
                height: 100px;
                position: relative;
                width: 100px;
            border:2.75px solid red;
            }
        .demo:after,.demo:before{
            content:'';
            position:absolute;
        }
        .demo:after{
            //height:20px;
            //width:20px;
            //background:yellow;

            //border:10px  solid lightgreen;
            border:10px  solid transparent;
            border-top-color:gray;
            top:100px;
            left:20px;
        }        
            .demo:before{
            //height:30px;
            //width:30px;
            //background:green;

            //border:15px solid red;
            border:15px solid transparent;
            border-top-color:red;
            top:100px;
            left:15px;
        }    
</style>
View Code

截图:

其中灰色盒子的边框2.75px与箭头边框红色部分的宽度计算,大家自己捉摸捉摸哈~~数学问题!

至此,我们的续写,给“tooltip提示框”添加个边框到此结束!具体颜色样式大家可以随自己要求自己做修改~~

 更多知识分享:微笑空间站

转载于:https://www.cnblogs.com/xuyongsky1234/p/4156657.html

Tooltip的两种实现方式:纯CSS与JavaScript 本文还有配套的精品资源,点击获取 简介:Tooltip是一种网页交互功能,用于在鼠标悬停时显示提示信息。本文介绍了两种实现Tooltip的方法,包括纯CSS方法和JavaScript方法。纯CSS方法利用伪元素和:hover选择器实现简单且响应迅速的提示框;而JavaScript方法则提供了更高的灵活性和动态内容支持,但可能带来额外的性能开销。文章通过具体的代码示例和解释,... 阅读详情

相关推荐

纯CSS实现多方向三角形的技巧与实战

pietitle 三角形方向与边框关系“border-top 有色” : 25“border-right 有色” : 25“border-bottom 有色” : 25“border-left 有色” : 25每个扇区代表一种方向配置,共同构成完整的方向控制系统。width: 0;height: 0;

weixin_42611177的博客 1439

CSS基础学习--20 提示工具(Tooltip)

提示工具在鼠标移动到指定元素后触发,总共四种样式实例: 提示框在鼠标移动到指定元素上显示 HTML- 使用容器元素 (like <div>) 并添加 "tooltip" 类。在鼠标移动到 <div> 上时显示提示信息。提示文本放在内联元素上(如 <span>) 并使用class="tooltiptext"。CSS-tooltip 类使用 position:relative, 提示文本需要设置定位值 position:absolute。 注意: 接下来的实例会显示更多的定位效果。tooltiptext

yyxhzdm的博客 3853

HTB Attacking GraphQL Skills Assessment

通过枚举应用,利用GraphQL API,发现sql注入点,然后利用找到flag。

qq_33522010的博客 453

CSS 提示工具:Tooltip

基础提示框(Tooltip)是一种常见的用户界面元素,通常用于向用户显示有用的信息或提示。在这个示例中,创建了一个带有 “Hover Me” 文本的按钮,当鼠标悬停在按钮上时,会显示一个位于按钮下方的提示框。CSS 提示工具是一种常用的用户界面元素,通常用于向用户显示有用的信息或提示。在CSS中,我们可以创建基于定位的提示工具,这通常涉及到使用绝对定位来放置提示框,以便使其正确地出现在鼠标指针下方。同时,还使用CSS来设置提示框的样式,包括位置、背景色、字体颜色、边框圆角等。来触发提示框的显示。

梁辰兴的博客 2361

Obsidian跨设备同步实战:阿里云OSS与Remotely Save插件配置指南

本文详细介绍了如何利用阿里云OSS对象存储与Remotely Save插件,为Obsidian笔记软件搭建一个低成本、高可靠性的私有化多端同步方案。从创建OSS Bucket、配置CORS规则、生成子账户密钥,到插件安装与多设备同步策略,提供了完整的实战配置指南,有效解决Obsidian用户的跨设备同步痛点。

qsc901234567的博客 1284

避坑指南:PCIe设备兼容性那些坑——聊聊MPS/MRRS设置不当引发的血泪史

本文深入探讨了PCIe设备兼容性问题,特别是MPS/MRRS参数设置不当引发的常见故障。通过详细解析MPS(Max Payload Size)和MRRS(Max Read Request Size)的作用机制,提供Linux内核五大配置策略的对比分析,并分享FPGA加速卡等实战案例的排查经验。文章还介绍了诊断工具链、动态调试技巧以及性能优化方法,帮助工程师有效解决PCIe兼容性难题。

weixin_30872499的博客 419

css实现tooltip

想起在群里有位群友问过一道面试题,怎么用css实现tooltip,第一解决方案大家可能是都是用title解决,但是会是这么简单吗? 面试题考察点 css实现tootip,个人感觉应该考点在于对css的熟悉程度。用title来实现tootip这个是基本上能解决问题的但是样式美化就是一个小问题。我来解决的话第一解决方案就是用伪类,伪元素实现。 伪类 伪元素 伪类:用于当已有元素处于的某个状态时,为其添加对应的样式,这个状态是根据用户行为而动态变化的。比如说,当用户悬停在指定的元素时,我们可以通过:hover来

weixin_36106791的博客 1308

【零基础入门哈希签名架构,从Lamport到SPHINCS+】第二集 哈希签名树 Merkle Tree Authentication

在第一集中,我们一直忽略了一个问题。设想一下,假如有一个Hacker(黑客),在截获到Sender发送给Receiver的公钥之后,把这个公钥改成Hacker自己的公钥,然后再发给Receiver,那么Receiver就会误认为这是Sender的公钥。所以我们之前所说放方案,其安全性都需要建立在一个前提下:Receiver需要确认公钥确实是Sender发出的。

m0_50572808的博客 2454

css实现toolTip

css实现toolTip(空心三角箭头

心痛丶如花败 1221

透传产品上报AEP平台数据流程

1. 什么是数据透传 数据透传:指的是在通讯中不管传输的业务内容如何,只负责将传输的内容由源地址传输到目的地址,而不对业务数据内容做任何改变。 这篇文章描述了如何将一台NB设备通过透传方式将数据传输到AEP平台,再通过数据订阅的方式获取到这些数据。 2. 步骤 2.1 设备在AEP平台创建 AEP:https://dm.ctwing.cn/ 新建产品 添加设备 根据模组的15位IMEI添加设备 开启内网穿透 具体可参照我的这篇博客:内网穿透-如何进行本地数据调试 设置数据推送

qq_42265394的博客 2297

手把手教你学Simulink实例--使用 Simulink 进行电力电子系统的小信号模型仿真

电力电子系统(Power Electronics System)包括各种功率转换器(如 DC-DC 转换器、逆变器等)。这些设备中的关键组件(如 MOSFET、IGBT、电容器、电感器等)不仅影响系统的性能,还直接关系到系统的稳定性、效率和可靠性。因此,在设计阶段进行详细的建模和仿真至关重要。小信号模型仿真的目的是通过线性化非线性系统来评估其动态特性,包括增益、相位裕度、带宽等指标。通过本教程,我们介绍了如何使用 Simulink 进行电力电子系统的小信号模型仿真。背景介绍。

MHD0815的博客 298

纯CSS实现tooltip提示框,CSS箭头及形状

本片介绍仅用CSS做出tooltip那样的提示框及箭头等形状! 首先介绍一下CSS:after选择器 定义和用法:(参考w3school:after选择器)   :after选择器在被选元素的内容后面插入内容,使用content属性来指定要插入的内容 例: p:after { content:"台词:-"; background-color:yellow; ...

xuyongsky1234的博客 1367

Windows10环境下激活虚拟环境报错【source : 无法将“source”项识别为 cmdlet、函数、脚本文件或可运行程序的名称】

在使用Django创建Web程序前,需要创建一个虚拟的工作环境,在使用【source ll_env/bin/activate】命令激活虚拟环境时报错:source : 无法将“source”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。所在位置 行:1 字符: 2。

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 1万+

html中如何写一个提示框,css画一个提示框

用css画一个如下图的提示框:代码如下:Title.dialog{display:inline-block;padding:10px;border-radius: 4px;z-index: 2000;font-size: 12px;border:1px solid #303133;position: relative;top: 30px;left:50px;}.dialog .dialog_ico...

weixin_35681725的博客 608

国产服务器系统的PXE无人值守自动化安装部署——以银河麒麟、统信UOS、OpenEuler这三类服务器系统为例

本文详细介绍了三种国产服务器系统(银河麒麟、统信UOS、OpenEuler)的PXE无人值守自动化安装方法。主要内容包括:1)从系统ISO镜像中提取内核文件和根系统文件;2)编写GRUB菜单引导文件;3)配置自动应答文件实现自动化安装;4)重启PXE服务并测试安装过程。文章特别强调了硬盘容量需≥100GB、UEFI模式设置等注意事项,并提供了root密码重置方法。对于x86架构Windows上模拟ARM架构系统安装也给出了具体命令。通过完整的配置流程,可实现国产服务器系统的快速批量部署。

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 1469

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

css实现提示信息,纯CSS 实现tooltip 内容提示信息效果

Tooltip 也就是内容的提示信息,合理使用可以给用户比较好的体验。实现方法有很多种,有很多JS 插件,我这里介绍的是纯CSS实现的方法,兼容性也比较靠谱,IE8+均可正常显示。实现方法也非常简单。html结构WordPress Theme Pivot可以看到关键有2点,意识有css-tooltip标签,二是用data-tooltip保存提示信息。css代码.css-tooltip{positi...

weixin_42429120的博客 1628

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

CSS如何实现小箭头及模拟微信对话框样式

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>CSS箭头</title> <style> .step1 { width: 30px; height:30...

weixin_42143410的博客 2043

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

css app 返回箭头,css箭头

.aui-list-item-arrow:before {content: '';width: 0.4rem;height: 0.4rem;position: absolute;top: 50%;right: 0.75rem;margin-top: -0.2rem;background: transparent;border: 1px solid #dddddd;border-top: none;...

weixin_39866857的博客 340

10分钟上手CSS Arrow Please:新手必备的CSS箭头生成神器

CSS Arrow Please是一款专为前端开发者打造的CSS箭头生成工具,它能帮助你轻松创建自定义样式的工具提示箭头、弹出框箭头等UI元素,无需手动编写复杂的CSS代码。无论是网页设计新手还是有经验的开发者,都能通过这个免费工具快速生成高质量的CSS箭头代码,提升开发效率。 ## 为什么选择CSS Arrow Please? 在网页设计中,工具提示(Tooltip)和弹出框(Popup)是

gitblog_00245的博客 384

CSS 提示工具(Tooltip) 与 CSS绘制三角形和箭头

CSS 提示工具(Tooltip) <div> <div class="cssTooltip">CSS 提示工具(Tooltip) <span class="tooltiptext">Tooltip</span> </div> </div> <style scoped lang="scss"> .cssTooltip { cursor: pointer; position:

weixin_44524835的博客 727

html 带箭头的提示框,带箭头的提示框样式制作

对话框样式/原理:制造◆ 这形状,上面的盖住下面的,留出一象素的距离,做出边线的效果。一种是通过文字,一种是通过border有很多人,加我QQ说,不太会用position。简单的讲:父级:position:relative;不脱离文档文档流,如果不设,子级会往上找父级有这个值的,如果没有一直找到body子级:position:absolute;子级就会相对于父级来定位。脱离文档流//一、兼容写法,...

weixin_32873435的博客 662
上一篇: 纯CSS实现tooltip提示框,CSS箭头及形状
下一篇: CSS特异性(CSS Specificity)的细节之CSS样式权重的计算与理解(CSS样式覆盖规则)...
anan4621
博客等级 码龄10年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值