当前位置: 首页 > 图文教程 > 网络编程 > Javascript > CSS+Table图文混排中实现文本自适应图片宽度(超简单+跨所有浏览器)

Javascript
用JavaScript实现浏览器地震效果
Javascript实例教程(8) 利用Javascript基于浏览器类型的重定向
Javascript实例教程(14) 鼠标触发窗口
使主页呈现“飞舞”特效
Javascript实例教程(21) OLE Automation(1)
Javascript实例教程(13) 鼠标移过时报警
Javascript实例教程(10) 随机显示图片
Javascript实例教程(2) 创建弹出式窗口
JavaScript 小技巧(第十集)
Javascript实例教程(3) 创建折叠式导航菜单
Javascript实例教程(7) 利用Javascript进行密码保护
完美解决一个事件激活多个函数(2)
Javascript模拟游戏中的弹出菜单效果
Javascript实例教程(6) 在一个表单中设置和检查Cookies
JavaScript 小技巧(第八集)
Javascript实例教程(4) 探测浏览器插件
JavaScript 小技巧(第九集)
JavaScript学习:基础继承机制
初学Javascript之cookie篇(译)
让弹出窗口变得“体贴”一些(javascript)

Javascript 中的 CSS+Table图文混排中实现文本自适应图片宽度(超简单+跨所有浏览器)


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

最近在为学乐网开发图片显示功能时遇到一个问题:在一个table中有两行,上边显示图片(大小随机),下边显示对图片的相关说明(文字长度随机) 这就出现一个问题,如果图片过小,或文字过长,就会出现文字把整个表格撑得很大,即占用了很多空间,显示效果也非常不美观。
网上也有许多解决办法,但要么复杂,要么不能解决跨浏览器问题,要么不能自适应图片大小变化。
在我的这个方法中,解决了: 不需要在代码中指定图片大小、跨浏览器、非常简单。最后的效果如下图所示,当文字过长时,它会自动换行以适应图片宽度:
基于表格的图文混排
方法如下:
1)图片及图片说明代码如下:
<table class="mod_img" width="10" align="left" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td align="center"><a title="点击查看原图" href="/upload/tech/20091012/20091012094506_eb6fdc36b281b7d5eabf33396c2683a2.png" target="_blank"><img src="/upload/tech/20091012/20091012094507_f0e52b27a7a5d6a1a87373dffa53dbe5.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等浏览器中均能完美正常工作!祝你愉快。