码迷,mamicode.com
首页 > Web开发 > 详细

用css实现三角效果

时间:2015-04-25 16:37:39      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:

CSS border原理

一个div或者元素的border并不是我们直观意义上的一条有高度的线,而是一个等高梯形或者三角形(宽高为0时),可以看一下效果:

 

HTML:

<div class="arrow1"></div>

 

CSS:

 

.arrow1{

font-size:0; /*默认有高度会撑开,这里清楚高度*/

width:0;

height:0;

border-width:30px;

border-style:solid;

border-color:red blue green orange;

}


技术分享

可以看到每一个方向的border都是一个三角形,那么我们只需把对应方向剩余其他方向的border设置为透明或者隐藏掉就可以得到任何方向的一个三角形了。

 

我们以一个下拉图标为示例,得到这样一个图标可以将border的左右和下边框改为透明,css改动如下:

 

.arrow1{

font-size:0; /*默认有高度会撑开,这里清楚高度*/

width:0;

height:0;

border-width:30px 30px 0;

border-style:solid dashed dashed;

/*左右下设为dashed为了兼容ie6*/

border-color:red transparent transparent;

}

 

技术分享
如果我们想实现下图的效果该怎么办呢?很简单,做两个小三角,一个是背景色,一个是边框色,Java,然后利用定位重叠在一起,记住他们的定位要相差一个像素哦~

技术分享

 

HTML:

<div class="message-box">

<span>你好啊,欢迎加入我们!</span>

<div class="triangle-border tb-border"></div>

<div class="triangle-border tb-background"></div>

</div>

 

 

CSS:

.message-box {

position:relative;

width:240px;

height:60px;

line-height:60px;

background:#E9FBE4;

box-shadow:1px 2px 3px #E9FBE4;

border:1px solid #C9E9C0;

border-radius:4px;

text-align:center;

color:#0C7823;

}

.triangle-border {

position:absolute;

left:30px;

overflow:hidden;

width:0;

height:0;

border-width:10px;

border-style:solid dashed dashed;

}

.tb-border {

bottom:-20px;

border-color:#C9E9C0 transparent transparent;

}

.tb-background {

bottom:-19px;

border-color:#E9FBE4 transparent transparent;

}

 

用css实现三角效果

标签:

原文地址:http://www.cnblogs.com/manshanyoucaihua/p/4456072.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!