当前位置: 首页 > 图文教程 > 网页制作 > CSS样式表 > 网页九宫格布局:应用透明的外圆角

CSS样式表
css 块状元素和内联元素
CSS 盒模型、块状元素与内联元素、CSS选择器
css 浮动 理解Float的含义
CSS 清除浮动Clear
CSS 制作网页导航条(上)
CSS 制作网页导航条(下)
css 浮动(float)页面布局
css 浮动(float)页面布局(下)
css position 定位
css 定位应用实例
CSS Hack 有关浏览器兼容方面
css 单图片按钮实例(css 图片变换)
使用X-UA-Compatible来设置IE浏览器兼容模式
div overflow 超出隐藏属性使用说明
CSS 使用规则总结
div+CSS 兼容小摘
CSS的inherit与auto使用分析
如何组织和注释CSS文件
CSS样式按整洁易懂的结构组织
CSS Prism 查看和编辑CSS中用到的颜色

CSS样式表 中的 网页九宫格布局:应用透明的外圆角


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 228 ::
收藏到网摘: n/a

前言:在前面四篇文章中,我介绍了九宫格的原理及一个应用案例,本来已经告一段落了,但是那个布局还是有一定的局限性的。其最大的局限是不能应用四角圆角外面是透明的图片,而作为一个界面布局方式,如果不能应用透明的外圆角,那么这种布局的可扩展性就会大受影响,不能最大化限度地得以推广。本文就是要从根本上解决这个问题。

我知道这个问题的根源在于:中间的左右边框列垂直同高产生的,因为它们的父级容器是box这个总容器,而不是一个独立的容器,而底部的左右两个角容器是向上负偏移到它们的上面的,遮挡住了背景色。所以当圆角容器中的图片采用半透明或透明的图片时,其透明部分就会显示出左右两侧边框的图片背景出来。

在制作前面的《牢不可破的九宫格布局》的模型时,我就已经发现了这个问题,当时制作圆角图片也是采用的透明的圆角图片,可是后来发现这个问题后,为了减少麻烦,我又将透明的圆角片的透明部分加上一个和总容器相同的背景色,来避免了这个问题。但这个方法最终不是解决的终极办法,在我们的日常工作中,采用半透明的圆角来定制界面是很有必要的,因此在那篇文章中仅仅只是逃避了问题,而没有从根本上解决问题。在文章发布之后,终于有细心的朋友在试用之后,提出这个问题,哈哈,看看终于是无法偷懒来回避这个问题了。
知道了问题的根源后,要解决它也是一件简单的事情。

因为我这篇文章是建立在《牢不可破的九宫格布局》这篇文章的基础上的,如果还没有看过那篇文章的朋友,不妨先看了它后再来看这篇文章。这将有助于你的消化!

看来,要解决这个问题,我需要将中间部分作一些结构上的修改。因为我希望它的左右边框容器是和内容区是垂直同高的,也就是当内容区的文字内容的高度发生变化时,其左右边框的高度跟着同步调整其高度。这就是一个典型的三列同高布局。但与平时看到的三列布局有点不同的是,我希望中间的内容区的宽度填满整个中间的宽度,但它不是100%的宽度,而是100%减去左右两列边框的宽度,而这个宽度并不是一个百分比,它们都是有固定像素值的。这需要运用到我在上一篇文章中提到的方法来进行的解决。

为此我需要改变一下原来的结构:

【结构层】

我给中间的左中右三个容器增加一个父级容器,并给它定义一个类名middle,那么,现在的中间区域的结构应该是这样的:

<div class="middle">
   <span class="m_l"></span>
   <span class="m_r"></span>
   <div class="context">           
       <p>内容区< p>           
   </div>
</div>

【样式层】

我们再定义一下middle的样式,我们将原来的box的overflow:hidden;取消,将它加在middle容器上,让超出的部分截出隐藏。

.box{width:50%;margin:50px auto 0;background:#fff; }
.middle{overflow:hidden; zoom:1; }

这时需要特别指出的是,如果只是将middle这个容器设置为overflow:hidden的话,那么这个模型可以在IE6以上的所有浏览器中通过,但对于IE6来说,问题依然存在(你可以将此句删除,然后在IE6测试看看。)。最后加上zoom:1才能完美地解决这个问题。

基础模型的效果图如下:


图一

此基础案例也包括在下面的下载压缩包中。你可以下载到本机进行测试。

【案例应用】

为了更直观地测试透明圆角框效果,我在body中加了一张上下渐变的水平平铺的背景图片,并且出于简化模型的需要,我将圆角框的图片的外圆角改成了透明的gif图片(PS:你也可以将它换成png-24半透明的圆角图片,当然就要注意IE6的兼容性问题,需要JS代码来支持。支持代码在下面的播放器的案例中已经应用了,你略加修改就可以使用。)。你可以参照下面的实例来设计图片,在应用你自己的设计前,你需要修改样式表中图片的宽高值。
案例模型的效果截图如下所示:


图二

在上面的效果图中,可以看到在一个渐变背景下,其圆角框是透明的。你也以点击下面的“宽屏”、“全屏”按钮来测试当窗口放大时其透明圆角图片的完美应用。

本模型在以下浏览器中完美通过:
IE5.5、IE6、IE7、IE8、FF3、TT、Maxthon2.1.5、Opera9.6、Safari4.0、Chrome2.0。