详解使用CSS气泡框实现方法

气泡框(或者提示框)是网页中一种很常见的元素,大多用来展示提示信息,如下图所示:

详解使用CSS气泡框实现方法

拆分来看,形如这种气泡框无外乎就是一个矩形框+一个指示方向的三角形小箭头,要制作出这样的气泡框,如果解决了三角形小箭头就容易了。一种方法就 是制作这样一个三角形箭头的图片,然后定位在矩形框上。但这种解决办法在后期更改气泡框会很不方便,可能每修改一次气泡框都要重新制作一个三角形小图标。 如果我们能够直接用HTML和CSS代码实现这样一个三角形小箭头一切都迎刃而解了。

1、把div的width和height都设为0,四边都形成三角形。

# test{width:0; height:0; border-width:75px; border-style:solid; border-color:#09F #990 #933 #0C9;}

详解使用CSS气泡框实现方法

2、在主流浏览器中检测一下,发现IE6中存在一个小问题,上下边能形成三角形,左右两边仍然还是梯形。

详解使用CSS气泡框实现方法

解决:把div的font-size和line-height都设为0的,此时,div的四边在IE6下都能形成完美的三角形。

#test{ width:0; height:0; border-width:75px; border-style:solid; border-color:#09F #990 #933 #0C9; font-size:0; line-height:0;}

详解使用CSS气泡框实现方法

3、我们只需要其中的一个三角形,那么只需要将其他三边的color设置为透明或者跟页面背景一样的颜色,就能模拟出一个三角来,推荐将其他三边颜色设置为透 明,即color的值为transparent,如果其他三边颜色跟页面背景一样,虽然视觉上只能看到一个三角,但背景颜色一旦改变,其他三边颜色也要随 之改变。

#test{ width:0; height:0; border-width:75px; border-style:solid; border-color:#09F transparenttransparent; font-size:0; line-height:0;}

详解使用CSS气泡框实现方法

4、在IE6下transparent无效,其他三边被设置成默认的黑色了。

详解使用CSS气泡框实现方法

解决:把border-style设置为dashed后,IE6下其他三边就能透明了。

 5、到这一步我们已经成功的模拟出了一个小三角,下一步我们把这个小三角同矩形框结合起来。先设置一个矩形框,然后把小三角定位到矩形框上。先来写出HTML结构:

         

      CSS气泡框实现

.tag{ width:300px; height:100px; border:5px solid #09F; position:relative;}

.tag em{display:block; border-width:20px; position:absolute; bottom:-40px; left:100px;border-style:solid dashed dashed; border-color:#09F transparent transparent;font-size:0; line-height:0;}

详解使用CSS气泡框实现方法

6、

现在指示方向的三角形箭头是实心的,而我们想要的是镂空的效果,这里我们再叠加一个同气泡框背景颜色一样的小三角,然后把这个叠加的小三角移动一下位置就能达到了。
首先需要对HTML结构进行调整,如下:

         

      

      CSS气泡框实现

CSS样式修改为:

.tag{ width:300px; height:100px; border:5px solid #09F; position:relative; background-color:#FFF;}

.tag em{display:block; border-width:20px; position:absolute; bottom:-40px; left:100px;border-style:solid dashed dashed; border-color:#09F transparent transparent;font-size:0; line-height:0;}

.tag span{display:block; border-width:20px; position:absolute; bottom:-33px; left:100px;border-style:solid dashed dashed; border-color:#FFF transparent transparent;font-size:0; line-height:0;}

详解使用CSS气泡框实现方法

注意:叠加的小三角span的bottom值并不是border-width的值,两个小三角bottom的差值理论上应该是2(border-width)2的平方根。

详解使用CSS气泡框实现方法

最后来把代码优化一下,以便在后期更容易维护,完整的HTML结构:

 

     

    

    CSS气泡框实现

CSS样式修改为:

.tag{ width:300px; height:100px; border:5px solid #09F; position:relative; background-color:#FFF;}

.arrow{ position:absolute; width:40px; height:40px; bottom:-40px; left:100px; }

.arrow *{ display:block; border-width:20px; position:absolute; border-style:solid dashed dasheddashed; font-size:0; line-height:0; }

.arrow em{border-color:#09F transparent transparent;}

.arrow span{border-color:#FFF transparent transparent; top:-7px;}

详解使用CSS气泡框实现方法

以上就是详解使用CSS气泡框实现方法的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1608273.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月23日 21:39:12
下一篇 2025年12月23日 21:39:54

相关推荐

  • css更改input单选和多选的样式详解

    在项目开发中我们经常会遇到需要更改input单选和多选样式的情况,今天就给大家介绍一种简单改变input单选和多选样式的办法。 在这之前先简单介绍一下:before伪类 :before 选择器向选定的元素前插入内容。使用content 属性来指定要插入的内容(content是必须的哦)。 相信这并不…

    好文分享 2025年12月23日
    000
  • 关于css选择器知识详解

    导入外部css样式表的方法 使用link标签导入外部css样式表 在样式表中import(导入)外部样式表@import url(“/crazy-html5/06css/css/demo01.css”); 使用内部样式表 内部样式表只能作用于某一个网页,定义方式为在head头部添加style标签,在…

    好文分享 2025年12月23日
    000
  • 如何使用CSS实现分隔线

    下面是几种简单实现分隔线的方法,个人比较喜欢第二种,我也给出了最后第五种比较2的写法,请大家拍砖,或者提供其他好的方法。 单个标签实现分隔线: .demo_line_01{ padding: 0 20px 0; margin: 20px 0; line-height: 1px; border-lef…

    好文分享 2025年12月23日
    000
  • CSS中hight属性的详解

    目录结构: contents structure [-] hight属性值类型一览表 valuedescribtionauto默认length绝对长度%相对长度inherit继承 这里笔者主要介绍相对长度的用法,关于绝对长度读者可以参考CSS尺寸单位px % em rem详解获取更多信息。  hei…

    2025年12月23日
    000
  • css3新特性应用之视觉效果详细解读

    目录 padding 背景与边框第一部分 背景与边框第二部分 形状 视觉效果 字体排印 立即学习“前端免费学习笔记(深入)”; 用户体验 结构与布局 过渡与动画 源码下载 一、单侧阴影 box-shadow属性的应用,格式:h-shadow v-shadow blur spread color in…

    2025年12月23日 好文分享
    000
  • CSS盒子模型知识总结

    本章内容: 知识点一: 盒子模型:Box Model,由有内容(element content)、填充(padding)、边框(border)、边界(margin)这四个组成部分,这四个部分都包含有top/right/bottom/left四个组成部分。 从w3school上下载的图片,以图来看看盒…

    2025年12月23日 好文分享
    000
  • 如何在css中让背景图片拉伸填充避免重复显示

    如何让背景图片拉伸填充,这个问题听起来似乎很简单。但是很遗憾的告诉大家。不是我们想的那么简单。 比如一个容器(body,p,span)中设定一个背景。这个背景的长宽值在css2.1之前是不能被修改的。 所以实际的结果是只能重复显示,所以出现了repeat,repeat-x,repeat-y,no-r…

    好文分享 2025年12月23日
    000
  • css中padding填充详解

    语法: padding:[ | ]{1,4} 默认值:看每个独立属性 适用于:所有元素,除 table-row-group | table-header-group | table-footer-group | table-column-group | table-row 外 继承性:无 动画性:是…

    2025年12月23日
    000
  • 用css3简单的制作3d半透明立方体图片详解

    new document //css部分html{font-size:62.5%;}img{width:300px;height:300px;} #stage{//搭建一个舞台margin-top:200px;margin-left:auto;margin-right:auto;width:300p…

    好文分享 2025年12月23日
    000
  • 详细介绍css常用效果总结

    font: 14px/26.6px ‘Microsoft Yahei’, ‘Trebuchet MS’, Georgia, ‘Times New Roman’, Times, sans-sercss有不少常用的效果,你在平时浏览…

    2025年12月23日
    000
  • 详解Css常用操作图片方法

    这篇文章主要为大家详解Css常用操作图片方法的相关资料,需要的朋友可以参考下 body{ background-color: #0078b3;} .image{ border: 1px solid darkgray; width: auto; height: auto; float: left; t…

    好文分享 2025年12月23日
    000
  • 详解Css常用操作导航栏方法

    这篇文章主要为大家详解css常用操作导航栏方法的布局类,感兴趣的小伙伴们可以参考一下 一、垂直导航栏 ul{ list-style-type: none; margin: 0px; padding: 0px;} a:link,a:visited{ text-decoration: none; dis…

    好文分享 2025年12月23日
    000
  • 详解CSS中单行居中,两行居左,超过两行用省略号结尾

    解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉到生僻的 CSS 属性,赶紧去补习一下吧。 不断更新,不断更新,不断更新,重要的事情说三遍。 5、单行居中显示文字,多行居左显示,最多两行超过用省略号结尾 这题就厉害了我的哥。 题目就是如上要求,使用纯 CSS,完成单行文本居中显示文…

    2025年12月23日 好文分享
    000
  • CSS全兼容的多列均匀布局问题解决方法

    解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉到生僻的 css 属性,赶紧去补习一下吧。 不断更新,不断更新,不断更新,重要的事情说三遍。 6、全兼容的多列均匀布局问题 如何实现下列这种多列均匀布局(图中直线为了展示容器宽度,不算在内): 法一:display:flex CSS3…

    2025年12月23日 好文分享
    000
  • 使用CSS巧妙地制作背景色渐变动画实例

    解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉到生僻的 CSS属性,赶紧去补习一下吧。 不断更新,不断更新,不断更新,重要的事情说三遍。 正文从这里开始。有的时候,嗯,应该说某些特定场合,我们可能需要下面这样的动画效果,渐变 + animation : 假设我们渐变的写法如下: …

    2025年12月23日 好文分享
    000
  • CSS巧妙的实现CSS斜线的方法

    解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉到生僻的 css 属性,赶紧去补习一下吧。 不断更新,不断更新,不断更新,重要的事情说三遍。   8、纯CSS的导航栏Tab切换方案 不用 Javascript,使用纯 CSS 方案,实现类似下图的导航栏切换: 立即学习“前端免费学习…

    2025年12月23日
    000
  • 解析CSS3 transition浏览器兼容性

    1、兼容性 根据canius,transition 兼容性如下图所示: p{width:100px;height:100px;background:blue;transition:width 2s;-moz-transition:width 2s; /* Firefox 4 */-webkit-tr…

    2025年12月23日 好文分享
    000
  • 利用CSS实现div水平垂直居中

    实现居中的方案有很多,这里介绍下纯css使用absolute配合margin的方案。 1. p宽高固定 width: 400px;height: 200px;position: absolute;top: 50%;left: 50%;margin-top: -100px;margin-left: -…

    好文分享 2025年12月23日
    000
  • css中background相关属性

    background-origin: 规定 background-position 属性相对于容器的哪一部分来定位。   padding-box 背景图像相对于内边距框来定位;(默认)   border-box背景图像相对于边框盒来定位;   content-box背景图像相对于内容框来定位。 ba…

    好文分享 2025年12月23日
    000
  • CSS中清除浮动的几种方法

    一、clear:both; 这种方法有一个问题:margin失效。 二、隔墙法 /*墙*/ cl{ clear: both; } .hl{ height: 16px; } 演化出的“内墙法” /*两个p都浮动,所以p不会被撑出高*/ /*在家里建一堵墙就能让儿子给p撑出高*/ 注意:一般不使用此方法…

    好文分享 2025年12月23日
    000

发表回复

登录后才能评论
关注微信