CSS3实现空心、实心三角指示箭头(利用border的设置实现)

(一)三角形实现原理

(1)三角形的实现原理是宽高都不设置(即为0),只设置边框,如果四个边框都设置宽度(border-width)、样式(border-style)和颜色(border-color)。 (2)当四个边框的宽度形同的时候
  • 效果图如下
  • html结构
    边框的宽度相同
  • css样式
     .box-width-equal{width: 400px;height: 400px;margin: 10px auto;position: relative;
    }
    .box-width-equal::before{content: '';position: absolute;border-left: 200px solid orange;border-top: 200px solid red;border-bottom: 200px solid orchid;border-right: 200px solid bisque;
    }
    

(3)当四个边框的宽度不相同的时候
  • 效果图如下
  • html结构
    边框的不宽度相同
  • css样式
    .box-width-unEqual{width: 400px;height: 400px;margin: 10px auto;position: relative;
    }
    .box-width-unEqual::before{content: '';position: absolute;border-left: 250px solid orange;border-top: 120px solid red;border-bottom: 280px solid orchid;border-right: 150px solid bisque;
    }
    

(二)两个三角形重叠时,高度偏移量的实现原理

(1)原理图

(三)实心三角形(视觉上没有边框)

(1)效果图 (2)HTML结构
实心三角形(视觉上没有边框)

(3)CSS样式
* {margin: 0;padding: 0; }.dialog-noBorder {width: 300px;height: 150px;background: orchid;margin: 0 auto;-webkit-border-radius: 20px;-moz-border-radius: 20px;border-radius: 20px;position: relative;border: 10px solid orchid;/*此处的边框大小会影响第二个三角形到顶部的偏移量,一般是1.4倍*/ }.dialog-noBorder::before {content: '';position: absolute;top: 150px;left: 120px;border-left: 30px solid transparent;border-right: 30px solid transparent;border-top: 30px solid orchid; }

(四)空心三角形(视觉上有边框)

  (1)效果图(2)HTML结构
空心三角形(视觉上有边框)

(3)CSS样式
.dialog-border {width: 300px;height: 150px;background: orchid;margin: 50px auto;-webkit-border-radius: 20px;-moz-border-radius: 20px;border-radius: 20px;position: relative;border: 10px solid red;/*此处的边框大小会影响第二个三角形到顶部的偏移量,一般是1.4倍*/ }.dialog-border::before {content: '';position: absolute;top: 150px;left: 120px;border-left: 30px solid transparent;border-right: 30px solid transparent;border-top: 30px solid red; }.dialog-border::after {content: '';position: absolute;top: 136px;left: 120px;border-left: 30px solid transparent;border-right: 30px solid transparent;border-top: 30px solid orchid; }


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部