1

我的 html 代码有一个奇怪的问题。

我想将 a 变量添加$htmlstring<p>标签中。

我愿意

 $finalHtml .= '<p class="text">'.$htmlString.'</p>';

我的$htmlstring包含类似

<span>texts….</span>
<span>texts….</span>
<span>texts….</span>
<span>texts….</span>
<span>texts….</span>

<table>
    <tr>
       <td>cell</td>
      <td>cell</td>
      <td>cell</td>
     </tr>
    more….
</table>

<span>more texts</span>
<span>more texts</span>

我希望我的结果变得像

<p class='text'>
     <span>texts….</span>
    <span>texts….</span>
    <span>texts….</span>
    <span>texts….</span>
   <span>texts….</span>

   <table>
     <tr>
        <td>cell</td>
       <td>cell</td>
       <td>cell</td>
      </tr>
      more….
   </table>
   <span>more texts</span>
   <span>more texts</span>
</p>

但我得到了

//p tag only wraps texts before my table element.
<p class='text'>
     <span>texts….</span>
    <span>texts….</span>
    <span>texts….</span>
    <span>texts….</span>
   <span>texts….</span>
</p>

   <table>
     <tr>
        <td>cell</td>
       <td>cell</td>
       <td>cell</td>
      </tr>
      more….
   </table>
   <span>more texts</span>
   <span>more texts</span>

谁能帮我解决这个奇怪的问题?非常感谢!

4

2 回答 2

6

那是因为p不能容纳block元素 ( table)。

使用 adiv而不是你的paragraph。

于 2013-09-06T20:07:38.007 回答
0

您是否尝试过通过验证器运行您的代码?

验证者会告诉你你不能放

 <p> <table> ...

或者

<table> <p> 

退房:http: //validator.w3.org/

于 2013-09-06T20:14:23.983 回答