我定义了大表格为700像素的宽度,内嵌每个小表格150宽度,每行显示四个小表格后换行
代码如下:
(结果是:表格不换行,把大表格撑破了)//PHP语句,从数据库select内容
<table width="700" align="center">
  <tr>
     <td>
  <table width="150">
             //PHP语句这里显示从数据库中捞出的内容
          </table>
             //PHP语句,循环以上这个table
     </td>
  </tr>
</table>

解决方案 »

  1.   

    取出的内容没有自动换行导致表格移位?
    你可以定义div 的宽度即可...
      

  2.   

    CSS 定义  word-wrap:break-word; word-break:break-all;
      

  3.   

    1、在无 css 控制时,table 不会被平行放置。所以你的示例代码与问题描述不符
    2、假定你已经做了控制,那么 4 个 table 只占 600,绝无超出 700 的可能。应该是你换行控制有问题
    <table width=700>
    <tr><td>
    <table width=150 border=1 style='float:left'>
    <tr><td>a</td></tr>
    </table><table width=150 border=1 style='float:left'>
    <tr><td>a</td></tr>
    </table><table width=150 border=1 style='float:left'>
    <tr><td>a</td></tr>
    </table><table width=150 border=1 style='float:left'>
    <tr><td>a</td></tr>
    </table><table width=150 border=1 style='float:left'>
    <tr><td>a</td></tr>
    </table><table width=150 border=1 style='float:left'>
    <tr><td>a</td></tr>
    </table></td></tr>
    </table>
      

  4.   

    用css控制吧,其实最外层的表格就一个td还是用div实在,当然这在你优化时候再更改
    先见一段代码<style>
    table{border:1px solid #ABC;}
    .mainTable{width:700px;}
    .childTable{width:150px;display:block;float:left;}
    .pub_cl{clear:both;}
    </style><table class="mainTable">
    <tr>
    <td>
    <table class="childTable">
    <tr><td>aaaaaaaaaabbb<br>sss
    </td></tr>
    </table>
    <table class="childTable">
    <tr><td>aaaaaaaaaa
    </td></tr>
    </table>
    <table class="childTable">
    <tr><td>aaaaaaaaaa
    </td></tr>
    </table>
    <table class="childTable">
    <tr><td>aaaaaaaaaa
    </td></tr>
    </table>
    <div class="pub_cl"></div>
    <table class="childTable">
    <tr><td>aaaaaaaaaa
    </td></tr>
    </table>
    </td>
    </tr>
    </table>直接测试一下,pub_cl那行是每四行用php输出一个强硬换行的,如果不用的话也是可以的,情况是如果顶部高度过大,会自动对齐到低的下面,可以去掉看下效果
      

  5.   

    对呀,应该养成习惯用div, 现在div+css已经广泛应用了,但是很多单独学习php的书籍还是延用表格的多,可以自己试着变通下,比table 要简洁很多,也可以使页面的加载看起来更流畅
      

  6.   


    确实没做控制。
    4个小table时,没有撑破,但是超过4个时,就撑破了,没换行。
        你这个style='float:left'起了关键作用,但是它让内嵌的小表格全部靠左显示了,不太美观,不知是否可以让内嵌表格,每个都居中显示呢?
    因为内嵌表格我做了很多样式,都靠在一边,那样式很难看。我又看了一下,可能直接循环内嵌table外的那个<td>,也许有效。但是不知道怎么写<table width=700>
    <tr>//这里开始循环下面这个<td>
    <td>
    <table width=150>
    <tr><td>a</td></tr>
    </table>
    </td>
    //结束循环<td></tr>
    </table>
      

  7.   

    很明显楼主没有对表格进行换行控制。  三种方法供参考:1,换用DIV(方便很多,但是弊端是,你得重新设计你的样式表)2,用楼上那个左浮动(弊端是,内容向左,不能居中了)3,用PHP程序控制:每取出四个值,填入4个表后,重新<tr>一下(太方便美观了)
      

  8.   


    你说的浮动是指:
    我上面还是写错啦,内嵌表格的宽度150,我写在TD上了。楼主自己改一下[code=HTML]
    <table width=700px border=1> 
       <tr align=center> 
           <td>
              <table width=150px style='float:left'><tr><td>内容1</td></tr></table>
              <table width=150px style='float:left'><tr><td>内容2</td></tr></table>
              <table width=150px style='float:left'><tr><td>内容3</td></tr></table>
              <table width=150px style='float:left'><tr><td>内容4</td></tr></table>
              <table width=150px style='float:left'><tr><td>内容5</td></tr></table>
           </td> 
       </tr>
    </table>
    这样吗?我也发现了,用这种浮动,内嵌的table全部靠左显示,效果很不好