CSS边角折叠实战
在大量的网页设计作品中,都用到了这种折叠效果,通常用于标题背景。一般可以用PhotoShop来实现这样的效果,但是在当今广泛提倡减少网页图片使用量的情况下,我们还是少用图片为好。其实使用CSS是可以很容易地实现这种效果的,废话少说,直接上代码:
02 | < html xmlns = "http://www.w3.org/1999/xhtml" > |
05 | < title >CSS Shapes</ title > |
06 | < style type = "text/css" > |
17 | background: -moz-linear-gradient(top, #e3e3e3, #c8c8c8); |
18 | background: -webkit-gradient(linear, left top, left bottom, from(#e3e3e3), to(#c8c8c8)); |
24 | -moz-box-shadow: 1px 1px 3px #292929; |
25 | -webkit-box-shadow: 1px 1px 3px #292929; |
26 | box-shadow: 1px 1px 3px #292929; |
28 | text-shadow: 0 1px 0 white; |
34 | border-left: 20px solid transparent; |
35 | border-top: 10px solid #c8c8c8; |
53 | < h1 > 我的标题 < span class = "arrow" ></ span > </ h1 > |
点此可以预览以上代码的运行结果,可能IE下的效果比较单调,再次鄙视IE。这里的关键技术是class="arrow"这个类,它产生了一个三角形状,让你看起来就像是一条带子被折叠了一样,控制这个类的CSS代码为:
05 | border-left : 20px solid transparent ; |
06 | border-top : 10px solid #c8c8c8 ; |
这其中关键的属性是border-left 和 border-top,这两个属性形成了一个三角形效果,也就是带子的拐角效果,你可以将以上代码的5、6行,做如下更改,看看效果:
1 | border-right : 20px solid transparent ; |
2 | border-top : 10px solid #c8c8c8 ; |
再做一次更改,看看什么效果:
1 | border-left : 20px solid transparent ; |
2 | border-bottom : 10px solid #c8c8c8 ; |
通过这几次更改,你可以看到,border-right、border-left和border-bottom、border-top的不同组合,可以实现三角形的不同的朝向,你可以举一反三制作你的折叠效果了。
如果你喜欢通过PhotoShop来实现以上效果,可以看看这篇文章: