【 tulaoshi.com - Web开发 】
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/) 打开网易邮箱的登录界面,我们会发现,在首页的底部有这样一个最新动态的广告条,其设计代码如下: HTML代码
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
在这里,网易采用了table来设计这个页面效果,当然table用在这里并没有什么不妥。但是今天,我们主要是想用一个非table方法来达到同样的效果。
首先看一下用到的背景图
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/) 这张图片中包含了所有该页面中用到的图片,在这个横条中只用到了底部了两个,我们可以看出,对于长度远小于实际内容的背景来说,使用table有很多便利性。
接下来我们看看怎么用非table标签来达到同样的效果:首先,从主义上来看最新动态是标题,其它后面几项都是最新动态的详细内容,存在主次关系。这个至少可以想到一点就是最新动态可能用到hn标签;其次,各内容之间的并列关系,对于处理并列关系我们常用的就是无序列表ul了;最后,结合上面的主次与并列,我们可以考虑用dldtdd来实现这个效果了(关于这三个标签的具体含义和应用请参考 经常被遗忘的重要标签dldtdd)。* {padding:0;margin:0;font-size:12px;font-family:Tahoma "宋体"} dl {background:#E1F6FF url(attachments/month_0712/g2007123002932.gif) no-repeat 0px -259px;float:left;padding-left:5px; margin:100px 0 100px;} /*设定背景位置,设定背景不重复*/ dt {height:26px;line-height:26px;float:left;background:RGB(187,228,246);padding:0 5px;}/*向左浮动,以期dt和dl内容在在同一行内*/ dd {padding-left:20px; height:26px;line-height:26px;background:#E1F6FF url(attachments/month_0712/g2007123002932.gif) no-repeat -230px -300px;display:inline;float:left}/*为每个dd设定样式,当然在有些情况下可以使用list-style-type,但这里似乎行不通*/ .first {padding-left:16px;background:#E1F6FF url(attachments/month_0712/g2007123002932.gif) no-repeat -8px -259px;}/*设定first的特殊样式*/ .last {padding-left:40px;padding-right:20px;background:#E1F6FF;background:url(attachments/month_0712/g2007123002932.gif) no-repeat -17px -259px;}
* {padding:0;margin:0;font-size:12px;font-family:Tahoma "宋体"} dl {background:#E1F6FF url(attachments/month_0712/g2007123002932.gif) no-repeat 0px -259px;float:left;padding-left:5px; margin:100px 0 100px;} /*设定背景位置,设定背景不重复*/ dt {height:26px;line-height:26px;float:left;background:RGB(187,228,246);padding:0 5px;}/*向左浮动,以期dt和dl内容在在同一行内*/ dd {padding-left:20px; height:26px;line-height:26px;background:#E1F6FF url(attachments/month_0712/g2007123002932.gif) no-repeat -230px -300px;display:inline;float:left}/*为每个dd设定样式,当然在有些情况下可以使用list-style-type,但这里似乎行不通*/ .first {padding-left:16px;background:#E1F6FF url(attachments/month_0712/g2007123002932.gif) no-repeat -8px -259px;}/*设定first的特殊样式*/ .last {padding-left:40px;padding-right:20px;background:#E1F6FF;background:url(attachments/month_0712/g2007123002932.gif) no-repeat -17px -259px;} dl dt 最新动态
/dt dd ="first"
/dd dd ="26"
100%有奖!白金情侣项链等你拿
/dd dd 出门在外,紧急邮件处理不了怎么办?
/dd dd 打造中国最好的收费邮箱
/dd dd ="last"
/dd /dl dl dt最新动态/dt dd class="first" /dd dd height="26"100%有奖!白金情侣项链等你拿/dd dd出门在外,紧急邮件处理不了怎么办?/dd dd打造中国最好的收费邮箱/dd dd class="last" /dd /dl运行上面的效果,我们可以看到两者大体相似。
当然,本例存在一个问题就是dd class="first" /dd和dd class="last" /dd是两个为了实现我们想要的效果而存在的,并无实在的语义,因此这也是本例的一个缺点。不过我相信,应该有更好的不使用table标签实现此类问题办法。