Chinaunix首页 | 论坛 | 博客
  • 博客访问: 291517
  • 博文数量: 23
  • 博客积分: 3011
  • 博客等级: 中校
  • 技术积分: 662
  • 用 户 组: 普通用户
  • 注册时间: 2005-11-26 13:43
文章分类

全部博文(23)

文章存档

2009年(19)

2008年(4)

我的朋友

分类: 系统运维

2009-02-15 23:28:11

最近在为开发图片显示功能 时遇到一个问题:在一个table中有两行,上边显示图片(大小随机),下边显示对图片的相关说明(文字长度随机),这就出现一个问题,如果图片过小,或 文字过长,就会出现文字把整个表格撑得很大,即占用了很多空间,显示效果也非常不美观。网上也有许多解决办法,但要么复杂,要么不能解决跨浏览器问题,要 么不能自适应图片大小变化。

在我的这个方法中,解决了: 不需要在代码中指定图片大小、跨浏览器、非常简单。最后的效果如下图所示,当文字过长时,它会自动换行以适应图片宽度

方法如下:

1)图片及图片说明代码如下:

<table class="mod_img" width="10" align="left" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td align="center"><a title="点击查看原图" href="" target="_blank"><img src="uploads/200902/s_1234537179cwCgUYwc.png" vspace="0" border="0" hspace="0">a>td>tr><tr><td align="center"><div class="mod_img_desc">香港殖民地最后的一面旗帜,由英国蓝旗和代表香港的殖民地徽所组成,1959年-1997年div>td>tr>tbody>table>

2)"mod_img" 的定义如下,它指定了表格及图片边框的CSS样式:

.mod_img {margin:6px; border:1px solid #AAAAAA; padding: 3px; }
.mod_img img{margin:3px; border:1px solid #AAAAAA; padding:0px; }


3)"mod_img_desc" 的定义如下,它指定了说明文本的CSS样式:

.mod_img_desc {font-size:12px;word-break:break-all;width:100%; overflow:auto;}

这里的关键是上边的 width="10" 这处,这是文本自适应图片宽度的关键,实际上10是个很小的值,一般图片都大于这个值,并且在表格中显示一个图片时,图片会按自己的实际大小把这个表格撑 开,因此这个 width 并不会影响图片的显示,而在 3)处指定了文本的 width 为100%,就是说文字按照实际的宽度显示,而不管该宽度是多少,当文字超过宽度时,自动换行。

具体效果可查看:

经过测试,该方法在 IE/Firefox/Safari/Opera等浏览器中均能完美正常工作!祝你愉快。

声明:本文并非广告,学乐网也并非盈利组织。

阅读(1139) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~