@media screen and (max-width: 600px){
table{
border:0
}
table thead{
display: none
}
table tr{
margin-bottom: 10px
display: block/*设置成块级元素实现换行*/
border-bottom: 2px solid #ddd
}
table td{
display: block
text-align: right
font-size: 13px
border-bottom: 1px dotted #ccc
}
table td:last-child{
border-bottom: 0
}
table td:before{/*模拟标题的效果*/
content:attr(data-label)
float: left
text-transform: uppercase
font-weight: bold
}
}
这就出现一个问题,如果图片过小,或文字过长,就会出现文字把整个表格撑得很大,即占用了很多空间,显示效果也非常不美观。网上也有许多解决办法,但要么复杂,要么不能解决跨浏览器问题,要么不能自适应图片大小变化。
在我的这个方法中,解决了: 不需要在代码中指定图片大小、跨浏览器、非常简单。最后的效果如下图所示,当文字过长时,它会自动换行以适应图片宽度:
方法如下:
1)图片及图片说明代码如下:
<table
class="mod_img"
width="10"
align="left"
border="0"
cellpadding="0"
cellspacing="0"><tbody><tr><td
align="center"><a
title="点击查看原图"
href="/upload/20090214135145954.png"
target="_blank"><img
src="http://files.jb51.net/upload/20090214135147104.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:12pxword-break:break-allwidth:100%
overflow:auto}
这里的关键是上边的
width="10"
这处,这是文本自适应图片宽度的关键,实际上10是个很小的值,一般图片都大于这个值,并且在表格中显示一个图片时,图片会按自己的实际大小把这个表格撑开,因此这个
width
并不会影响图片的显示,而在
3)处指定了文本的
width
为100%,就是说文字按照实际的宽度显示,而不管该宽度是多少,当文字超过宽度时,自动换行。
经过测试,该方法在
IE/Firefox/Safari/Opera等浏览器中均能完美正常工作!祝你愉快。
就我个人经验的话,我觉得用table做布局是比较快的,但是到套用后台的时候,table就没有div+css布局那么直观了,因为用table做的时候,会有很多tr、td之类的代码,看得眼花缭乱的,当然两种布局都可以套后台...如果你会的话,两种布局都可以互相用的,至于你说出现什么挤压之类的,肯定是没有调好大小、位置之类的。我的话,两种布局都一起用,看你个人习惯和掌握程度.....希望能帮到你...呵呵