用css实现三角效果

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;

}

时间: 2024-08-02 22:30:11

用css实现三角效果的相关文章

css实现三角效果

demo <!DOCTYPE html> <html lang="zh"> <head> <meta charset=utf-8> <title>demo</title> </head> <style> #demo{ width:100px; height:100px; border:2px solid #000; } #demo:before{ content:''; display:bl

纯CSS小三角制作

无关的知识点 ① background-clip 属性规定背景的绘制区域. 1.padding-box:从padding区域(不含padding)开始向外裁剪背景. 2.border-box:从border区域(不含border)开始向外裁剪背景. 3.content-box:从content区域开始向外裁剪背景. 4.text:从前景内容的形状(比如文字)作为裁剪区域向外裁剪,如此即可实现使用背景作为填充色之类的遮罩效果. ② clip auto:对象无剪切rect(<number>|aut

CSS border三角、圆角图形生成技术简介

http://www.zhangxinxu.com/wordpress/?p=794 一.前言 利用CSS的border属性可以生成一些图形,例如三角或是圆角.纯粹的CSS2的内容,没有兼容性的问题,我之前在纯CSS实现各类气球泡泡对话框效果一文中算是比较详细的讲述了CSS border属性生成三角的原理,以及实例.我觉得此技术相当实用的,故本文再次简单叙述一下,另外,本文还将展示可能并不为众人所知的CSS border圆角生成技术.好了,裹脚布的话就不说了,直接进入正题. 二.CSS bord

追求极致--纯css制作三角、圆形按钮,兼容ie6

参考了天猫.微博等网站的做法,用纯html和css实现,效果还是不错的.以下是成果,兼容主流浏览器,包括ie6. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> &l

利用target的特性,可以实现纯css的tab效果切换

基础知识: :target起作用的是href连接到的位置 如 <a href="#tab1">tab1</a> <div id="tab1" class="tab">This is a tab1</div> :target{ color:red; } 但点击a标签的时候,连接到id是tab1的div,对这个div起作用color:red; 如: <a href="#tab"

css实现三角的一些方法

css实现三角没有想象中的那么难,只要明白border的各种属性的意思就很好明白css三角是如何实现的. 一下是几个很简单的例子: css三角形状的制作: css样式: .triangle{ width:0; height:0; border-left:10px solid transparent; border-right:10px solid transparent; border-top:10px solid red; }  方法解释:定义 左右两边边框透明,下边框不定义,上边框定义颜色即

CSS立体文字效果最佳实践

上一篇的<纯CSS3文字效果推荐>文章里面推荐了8款纯css实现的文字效果,其中3d文字效果最为流行,限于篇幅仅仅展示了其3D实现原理,没有考虑代码的复用性和可移植性,今天来补充下,顺便领略sass的强大功能,请大家摩摩拳擦擦掌,开工咯! 案例效果还是在codepen,在线研究点这里,下载收藏点这里. 1.单单纯纯的效果一 为了简化操作,我们使用和上一篇文章<纯CSS3文字效果推荐>一样的文档结构,后面的效果大差小不差,也就不再列出. <div contenteditable

css 实现评分效果

css实现评分效果,其实是css sprites (css精灵)的延伸应用,效果的实现主要是由  background-position 属性移动图片位置.之前看到有前辈写过关于这方面的内容,在理解上稍有偏差. 我的理解:有人认为background-position  的位置移动中,这个属性相当于大图片不动,把div的顶点进行移动,移动到目标小图的顶点位置, 可参见:http://www.cnblogs.com/iyangyuan/archive/2013/06/01/3111704.html

利用div和css制作三角形效果

利用div和css制作三角形效果:本章节介绍一下如何利用div和css实现三角形效果,虽然看起来表神奇,但是原理是非常的简单.代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>蚂蚁