龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > div+css/html >

CSS圆角背景与三角形实现技巧

时间:2012-12-29 08:41来源:未知 作者:admin 点击:
分享到:
css教程圆角背景 通过改变层叠元素的margin值实现圆角效果.当然,有人会说不用这么麻烦,css3几句代码就可以搞定,但目前来说不实用,支持的浏览器没几个. .r_top, .r_bottom {display:block; backg

css教程圆角背景
通过改变层叠元素的margin值实现圆角效果.当然,有人会说不用这么麻烦,css3几句代码就可以搞定,但目前来说不实用,支持的浏览器没几个.

.r_top, .r_bottom {display:block; background:transparent; font-size:1px}/*左上右上角和左下右下角的容器*/
.r_a, .r_b, .r_c, .r_d {display:block; overflow:hidden}/*四个圆角*/
.r_a, .r_b, .r_c{height:1px}
.r_b, .r_c, .r_d{background:#cf6}
.r_a {margin:0 5px}
.r_b {margin:0 3px; border-width:0 2px}
.r_c {margin:0 2px}
.r_d {height:2px; margin:0 1px}

html部分

<!--左上角/右上角-->
<div class=r_top><em>&nbsp;</em><em>&nbsp;</em><em></em><em></em></div>
<div class=box>.....内容容器.....</div>

<!--左下角/右下角-->
<div class=r_bottom><em></em><em></em><em></em><em></em></div>

个就比较简单了, 把元素定义成块级0大小(0宽0高0字号0行高)后, 通过改变元素的border-color值实现. 本文用的是em元素, 当然, 如果你项目中用em比较频繁, 为避免冲突也可以用samp,strong等元素.
当然, 即便用css实现的三角形, 万恶的ie6还是会给你添点麻烦: ie6不支持border-color的transparent值, 怎么办? 为ie6单独写一个border-color值, 然后用chroma滤镜实现透明, 详见代码

em{display:block;width:0;height:0;font-size:0;line-height:0;border-width:40px;border-style:solid;border-color:#cf6 #fff #39c #ffc;_filter:chroma(color=#000000)/*色度滤镜,让ie6实现透明bordercolor.滤镜的颜色值不可简写*/}
em.a{border-color:transparent transparent #fff transparent;_border-color:#000 #000 #fff #000}
em.b{border-color:transparent transparent transparent #fff;_border-color:#000 #000 #000 #fff}
em.c{border-color:#fff transparent transparent transparent;_border-color:#fff #000 #000 #000}
em.d{border-color:transparent #fff transparent transparent;_border-color:#000 #fff #000 #000}

html

<em><!--它就是三角形了,哈--></em>

看完整的实例

 

<style>
#demo{background:#047}
.triangle{margin:20px}
.round{margin:0 20px}
.box{padding:10px;background:#cf6;font-size:36px; text-align:center;line-height:80px}
/*round*/
.r_top, .r_bottom {display:block; background:transparent; font-size:1px}/*左上右上角和左下右下角的容器*/
.r_a, .r_b, .r_c, .r_d {display:block; overflow:hidden}/*四个圆角*/
.r_a, .r_b, .r_c{height:1px}
.r_b, .r_c, .r_d{background:#cf6}
.r_a {margin:0 5px}
.r_b {margin:0 3px; border-width:0 2px}
.r_c {margin:0 2px}
.r_d {height:2px; margin:0 1px}
/*triangle*/
.triangle em{display:block;width:0;height:0;font-size:0;line-height:0;border-width:40px;border-style:solid;border-color:#cf6 #fff #39c #ffc;_filter:chroma(color=#000000)/*色度滤镜,让ie6实现透明bordercolor.滤镜的颜色值不可简写*/}
.triangle em.a{border-color:transparent transparent #fff transparent;_border-color:#000 #000 #fff #000}
.triangle em.b{border-color:transparent transparent transparent #fff;_border-color:#000 #000 #000 #fff}
.triangle em.c{border-color:#fff transparent transparent transparent;_border-color:#fff #000 #000 #000}
.triangle em.d{border-color:transparent #fff transparent transparent;_border-color:#000 #fff #000 #000}
</style>

<div id="demo">
<div class="round">
 
<!--左上角/右上角-->
<div class="r_top"><em class="r_a"></em><em class="r_b"></em><em class="r_c"></em><em class="r_d"></em></div>

<div class="box">

我是一个圆角矩形,oh yeah!

</div>

<!--左下角/右下角-->
<div class="r_bottom"><em class="r_d"></em><em class="r_c"></em><em class="r_b"></em><em class="r_a"></em></div>

</div>

<div class="triangle">
 <em></em>
 <br />
 <em class="a"></em>
 <br />
 <em class="b"></em>
 <br />
 <em class="c"></em>
 <br />
 <em class="d"></em>
 <br />
</div>
</div>


精彩图集

赞助商链接