纯CSS实现带小三角提示框

摘要:
顶部:}/*提示框-下三角形*/。尖端范围底部{位置:-10px;边框左侧:边框顶部:div class=“尖端三角形左侧”>div class=“尖三角形右侧”>

   要实现在页面上点击指定元素时,弹出一个信息提示框。在前面的文章中,我们已经简单介绍了如何使用纯 CSS 创建一个三角形。本文在此基础上,记录如何使用 CSS 创建带三角形的提示框。

    实现的原理是创建一个div提示框,然后再创建一个三角形,将三角形用绝对定位(absolute)到提示框对应的位置。

    一、创建不带边框的提示框:

    之前已介绍过怎么生成三角形,直接代码如下:

<style>
    body {
        margin: 0;
        padding: 0;
        background: grey;
    }

    /*提示框容器*/
    .tip {
        position: relative;
        margin-left: 20px;
        margin-top: 20px;
         200px;
        background: #fff;
        padding: 10px;
        /*设置圆角*/
        -webkit-border-radius: 5px;
        -moz-border-radius: 5px;
        border-radius: 5px;
    }

    /*提示框-左三角*/
    .tip-trangle-left {
        position: absolute;
        bottom: 15px;
        left: -10px;
         0;
        height: 0;
        border-top: 15px solid transparent;
        border-bottom: 15px solid transparent;
        border-right: 15px solid #fff;
    }

    /*提示框-右三角*/
    .tip-trangle-right {
        position: absolute;
        top: 15px;
        right: -10px;
         0;
        height: 0;
        border-top: 15px solid transparent;
        border-bottom: 15px solid transparent;
        border-left: 15px solid #fff;
    }

    /*提示框-上三角*/
    .tip-trangle-top {
        position: absolute;
        top: -10px;
        left: 20px;
         0;
        height: 0;
        border-left: 15px solid transparent;
        border-right: 15px solid transparent;
        border-bottom: 15px solid #fff;
    }

    /*提示框-下三角*/
    .tip-trangle-bottom {
        position: absolute;
        bottom: -10px;
        left: 20px;
         0;
        height: 0;
        border-left: 15px solid transparent;
        border-right: 15px solid transparent;
        border-top: 15px solid #fff;
    }
</style>
<div class="tip">
    <div class="tip-trangle-left"></div>
    我是提示框<br/>
    内容可以自定义
</div>
<div class="tip">
    <div class="tip-trangle-right"></div>
    我是提示框<br/>
    内容可以自定义
</div>
<div class="tip">
    <div class="tip-trangle-top"></div>
    我是提示框<br/>
    内容可以自定义
</div>
<div class="tip">
    <div class="tip-trangle-bottom"></div>
    我是提示框<br/>
    内容可以自定义
</div>
    以上代码效果如下(我们实现了箭头在4个不同方向的提示框,在使用时可根据自身需要进行调整):

    纯CSS实现带小三角提示框第1张

    二、创建带边框的提示框:

    第一步实现了不带边框的提示框,如果要实现带边框的提示框,原理是先把提示框容器加上边框,然后通过伪元素,在需要带箭头的边框上面生成2个三角形,最后改变最上面的三角形的颜色(和提示框的内容背景色相同),即可实现。代码如下:

<style>
    body {
        margin: 0;
        padding: 0;
        background: grey;
    }

    /*提示框容器-上三角形*/
    .tip-top {
        margin: 20px;
        padding: 5px;
         300px;
        height: 60px;
        border: 2px solid #f99;
        position: relative;
        background-color: #FFF;
        /*设置圆角*/
        -webkit-border-radius: 5px;
        -moz-border-radius: 5px;
        border-radius: 5px;
    }

    /*生成2个叠加的三角形*/
    .tip-top:before, .tip-top:after {
        content: "";
        display: block;
        border- 15px;
        position: absolute;
        top: -30px;
        left: 100px;
        border-style: solid dashed dashed solid;
        border-color: transparent transparent #f99 transparent;
        font-size: 0;
        line-height: 0;
    }

    /*将上面的三角形颜色设置和容器背景色相同*/
    .tip-top:after {
        top: -27px;
        border-color: transparent transparent #FFF transparent;
    }

    /*下三角*/
    .tip-bottom {
        margin: 20px;
        padding: 5px;
         300px;
        height: 60px;
        border: 2px solid #f99;
        position: relative;
        background-color: #0FF;
        /*设置圆角*/
        -webkit-border-radius: 5px;
        -moz-border-radius: 5px;
        border-radius: 5px;
    }

    .tip-bottom:before, .tip-bottom:after {
        content: "";
        display: block;
        border- 15px;
        position: absolute;
        bottom: -30px;
        left: 100px;
        border-style: solid dashed dashed solid;
        border-color: #f99 transparent transparent transparent;
        font-size: 0;
        line-height: 0;
    }

    .tip-bottom:after {
        bottom: -27px;
        border-color: #0FF transparent transparent transparent;
    }

    /*左三角*/
    .tip-left {
        margin: 20px;
        padding: 5px;
         300px;
        height: 60px;
        border: 2px solid #f99;
        position: relative;
        background-color: #FFF;
        /*设置圆角*/
        -webkit-border-radius: 5px;
        -moz-border-radius: 5px;
        border-radius: 5px;
    }

    .tip-left:before, .tip-left:after {
        content: "";
        display: block;
        border- 15px;
        position: absolute;
        left: -30px;
        top: 20px;
        border-style: dashed solid solid dashed;
        border-color: transparent #f99 transparent transparent;
        font-size: 0;
        line-height: 0;
    }

    .tip-left:after {
        left: -27px;
        border-color: transparent #FFF transparent transparent;
    }

    /*右三角*/
    .tip-right {
        margin: 20px;
        padding: 5px;
         300px;
        height: 60px;
        border: 2px solid #f99;
        position: relative;
        background-color: #FFF;
        /*设置圆角*/
        -webkit-border-radius: 5px;
        -moz-border-radius: 5px;
        border-radius: 5px;
    }

    .tip-right:before, .tip-right:after {
        content: "";
        display: block;
        border- 15px;
        position: absolute;
        right: -30px;
        top: 20px;
        border-style: dashed solid solid dashed;
        border-color: transparent transparent transparent #f99;
        font-size: 0;
        line-height: 0;
    }

    .tip-right:after {
        right: -27px;
        border-color: transparent transparent transparent #FFF;
    }
</style>
<div class="tip-top">
    我是提示框<br/>
    内容可以自定义
</div>
<div class="tip-bottom">
    我是提示框<br/>
    内容可以自定义
</div>
<div class="tip-left">
    我是提示框<br/>
    内容可以自定义
</div>
<div class="tip-right">
    我是提示框<br/>
    内容可以自定义
</div>
</body>
    以上代码效果如下(我们实现了箭头在4个不同方向的提示框,在使用时可根据自身需要进行调整):

    纯CSS实现带小三角提示框第2张

    通过以上两个例子,展示了如何生成简单的提示框。而对于有边框的提示框,如果边框颜色和内容区背景色相同,也会实现无边框的提示框效果。在使用时,可以根据自己需要,调整代码。

免责声明:文章转载自《纯CSS实现带小三角提示框》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇李洪强iOS开发之基于彻底解耦合的实验性iOS架构三个给进程提权的方法 (c/cpp)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

很酷的页面布局框架

建高楼大厦时,我们总是先用钢筋水泥搭好骨架,然后再加砖添瓦,布置每套房屋。编写一个网页也是这样,须先将布局框架搭好稳固,之后才能游刃有余。本博文阐述如何实现了两栏布局(main栏和sub栏),三栏布局(main栏、sub栏和extra栏),以及布局中各栏的排列顺序。 本示例布局框架具有以下特性: 跨浏览器:兼容IE6。 稳固性:布局稳固,不受内容的影响。...

macOS平台下虚拟摄像头的研发总结

一、背景介绍     虚拟摄像头,顾名思义,就是利用软件技术虚拟出一个摄像头硬件设备供用户使用。当我们需要对视频图像进行处理再输出时,虚拟摄像头就具备非常大的价值了。关于如何在Windwos上实现一个虚拟设备的资料已经非常丰富了,Windows Driver Kit里面也有非常多的帮助文档。这篇博文主要总结了在Mac下开发虚拟摄像头的一些经验。Mac下的虚...

Android 自定义CheckBox 样式

新建Android XML文件,类型选Drawable,根结点选selector,在这定义具体的样式。 <?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android">...

Java实现bt文件下载、制作、解析、磁力链接

首先torrent里面肯定携带的有一些信息,所以就需要我们来解析这些信息。      我们这里做多文件制作torrent,所以首先要针对每一个文件建一个实体类 [java] view plain copy  import java.util.List;      public class Info {       private String na...

【java】Freemarker 动态生成word(带图片表格)

1、添加freemarker.jar 到java项目。 2、新建word文档。 3、将文档另存为xml 格式。 4、将xml格式化后打开编辑(最好用notepad,有格式),找到需要替换的内容,将内容换为变量(${变量名})。 5、生成表格,包括动态列和动态行。其中columnList 是List<String>格式的表头数据,datas...

SpringBoot 入门

目录 文件结构 pom.xml 主程序 Controller Service 异常处理 配置 自定义注解以及 AOP 拦截器 ApplicationRunner 定时调度 logback-spring.xml 配置日志 Actuator Prometheus 文件结构pom.xml <?xml version="1.0" encoding="UT...