zoukankan      html  css  js  c++  java
  • css 实现三角形 实现过程

     1.纯色的全等的三角形实现

    下面的就是实际实现  没有宽高 只有边框 都是透明 根据箭头的方向 给边框方法加颜色  比如需要像右箭头 只需要给border-right-color:颜色值; 即可 

    css

     body{ background: #000;}
        #a1{
             0px;
            height: 0px;
            border: 8px solid transparent;
            border-bottom-color: #fff;
        }
    

    HTML

    <div id="a1"></div>
    

    实现效果 以上


    第一个图 是正常div有宽高 边框  第二个图 就是去掉宽高的的只有边框 从第一个图上看就是去掉宽和高 就变成第二图了 第三个是其他三边设置透明属性

      先来看看定义一个正常div宽高边框的

    <style type="text/css">
     /*看图 去掉宽高 就是去掉中心部分 */
        #a2{
             40px;
            height: 40px;
            border: 20px solid;
            border-top-color: red;
            border-right-color:green;
            border-left-color: blue;
            border-bottom-color: white;
        }
    </style>
     <div id="a2"></div>
    

      下面是去掉宽高 只有边框的

    <style type="text/css">
     /*没有宽度高度 只有border*/
        #a3{
             0px;
            height: 0px;
            border: 40px solid;
            border-top-color: red;
            border-right-color:green;
            border-left-color: blue;
            border-bottom-color: white;
        }
    </style>
    
    <div id="a3"></div>
    

      设置三边透明

    <style type="text/css">
     /*在宽高为0时候 边框颜色设置为透明属性transparent*/
        #a4{
             0px;
            height: 0px;
            border:40px solid;
            border-color: transparent transparent #fff transparent;
    
        }
    </style>
    <div id="a4"></div>
    

      

    IE下的修复

    IE6的空div高度bug: 
    IE6下,空div会有莫名的高度,也就是说“height: 0;”不顶用,此时形成的尖角的实际占高于其他浏览器是有差异的。可使用:
    font-size: 0;
    line-height: 0;
    overflow: hidden;(来解决空的div会在ie6下有高度)

    不支持透明属性

     border-style: solid dashed  dashed;

    IE6 浏览器不支持transparent透明属性,就border生成三角技术而言,直接设置对应的透明边框的border- style属性为dotted或是dashed即可解决这一问题,原因是在IE6下,点线与虚线均以边框宽度为基准,点线长度必须是其宽度的3倍以上 (height>=border-width*3),虚线宽长度必须是其宽度的5倍以上(height>=border-width*5), 否则点线和虚线都不会出现。

    参考资料

     http://www.cnblogs.com/JohnnyChen/archive/2012/11/29/2794361.html 

    http://www.zhangxinxu.com/wordpress/2010/05/css-border%E4%B8%89%E8%A7%92%E3%80%81%E5%9C%86%E8%A7%92%E5%9B%BE%E5%BD%A2%E7%94%9F%E6%88%90%E6%8A%80%E6%9C%AF%E7%AE%80%E4%BB%8B/

     2.只有边框的全等的三角形实现

    效果图 红色框为实现的效果

    实现原理,实现第一个三角箭头,第二个箭头在第一个箭头的里面,差一个像素,绝对定位,

    HTML代码

     <li class="active">互联网金融<i class="icon"><em></em></i></li>
    

    CSS代码  

    .solution .solution_menu ul li{
         131px;
        height: 47px;
        background: #d3e9f8;
        text-align: center;
        line-height: 47px;
        color: #35a1f0;
        border-radius:10px;
        position: relative; /*这里需要相对定位 确定小三角的位置*/
        display: block;
    }
    .solution .solution_menu ul li i,.solution .solution_menu ul li i em{
        display: block;
         0px;
        height: 0px;
        border: 16px solid transparent;/*全等三角必备*/
        border-right-color: #40a7f0;/*箭头方向的颜色 全等纯色 实现上图效果必须有一个元素来覆盖住这个三角形。差一个像素正好能形成箭头 第二个箭头的颜色纯色跟方框里的背景色一样*/
        position: absolute;/*绝对定位*/
        
    }
    .solution .solution_menu ul li i{
        left: 134px;
        top: 6px;
    }
    .solution .solution_menu ul li i em{
    /*决定三角箭头的宽度和颜色 边框色留住1像素,其他的为方框内颜色。*/
        left: -15px;
        border-right-color: #fff;
        top:-16px;
    }
    

      

  • 相关阅读:
    其实说起来要国庆节回去,心里有点担心再最后买不到票
    现在快要中秋节,之后又是国庆节
    天气开始降温,今天会下雨
    昨天晚上控制家里的电脑,与家里人视频
    有时候手机打开微信或者其它应用真的是非常慢
    手机有时候卡的不行,还是自己照顾着使用吧
    这几天晚上都是再看小别离,还是有点意思
    函数初识
    Python文件操作
    Python字符编码
  • 原文地址:https://www.cnblogs.com/xxx91hx/p/4617365.html
Copyright © 2011-2022 走看看