可变高宽的圆角框


矩形框在网页中较为常见,不过个人觉得还是圆角框更为美观。那么圆角框是如何用DIV+CSS来实现的呢?假如把一张圆角框图片直接作为背景来处理,那么高宽就都被定死了,无法随内容而改变大小。今天,我学会了一种方法来设计可变高宽的圆角框。先来看看效果图:

  为了达到可变高宽的效果,首先应将图片分割成五块。如下图:

  为什么这么分割?为什么图片1需要切成这么大呢?这样就能实现可变高宽了?这些问题不急于回答,我们不妨先来阅读下源码。

01 <div id="m_category" class="round2">
02         <h3>管理中心</h3>
03         <div class="con">
04             <p><a href="Categorymanager.aspx">类别管理</a></p>
05             <p><a href="Newsmanager">新闻管理</a></p>
06             <p><a href="Addnews">添加新闻</a></p>
07         </div>
08         <div class="footer">
09             <p> </p>
10         </div>
11 </div>
01 *
02 {
03     padding:0;
04     margin:0;
05 }
06 body 
07 {
08     font-size:14px;
09 }
10 a:link, a:visited
11 {
12     color: #000;
13     text-decoration: none;
14 }
15 a:hover
16 {
17     color: #00f;
18     text-decoration: underline;
19 }
20 #m_category
21 {
22     width:200px;
23 }
24 #m_category .con p
25 {
26     padding:10px;
27 }
28 .round2
29 {
30     background-image:url("../images/round2_left_top.gif");
31     background-position:top left;
32     background-repeat:no-repeat;
33 }
34 .round2 h3
35 {
36     background:url("../images/round2_right_top.gif") no-repeat top right;
37     padding-left:35px;
38     padding-top:12px
39     padding-bottom:12px;
40     font-size:16px;
41     font-weight:bold;
42 }
43 .round2 .con
44 {
45     height:200px;
46     padding:0  20px;
47     background:url("../images/round2_right_middle.gif") repeat-y top right
48 }
49 .round2 .footer
50 {
51     background:url("../images/round2_left_bottom.gif") no-repeat bottom left;
52 }
53 .round2 .footer  p
54 {
55     background:url("../images/round2_right_bottom.gif") no-repeat bottom right;
56 }

  从上述代码中可以看到,round2将图片1作为了背景,h3标签将图片2作为了背景,con将图片3作为了背景,foote中的p标签将图片4作为了背景,footer将标签5作为了背景。我们先从最底下的那层开始讲起。当round2中的内容不足以填满第1个图片时,那么只显示图片1的部分。此时,将图片5叠加到图片1上。这样就达到了控制高度的目的。控制宽度其实也是同一个原理。我们通过h3标签和p标签将图片2和图片4叠加到图片1和图片5上,这样就实现了可变宽度。剩下的只要让con中的图片3沿y轴平铺下来,那么整个圆角框的结构就形成了。

  这种通过将圆角框分割成5个图片来控制高宽的方法,虽然达到了可变高宽的目的,但是缺点很明显,就是图片1需要切的比较大。有没有更好的方法呢?网上我看到了一种不需要背景图片来实现可变高宽圆角框的方法


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3