为啥我的 div 被平板电脑上的表格弄乱了?

Posted

技术标签:

【中文标题】为啥我的 div 被平板电脑上的表格弄乱了?【英文标题】:Why is my div being messed up with a table on a tablet?为什么我的 div 被平板电脑上的表格弄乱了? 【发布时间】:2013-07-02 23:28:05 【问题描述】:

看看下面的代码就知道我的问题了。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>

<body>


<div style='width:100%; background:#CCCCCC; padding:0px; margin:0px; margin-bottom:20px; border:1px solid #CCC;'>

   <div style='float:left'>
      <a href='#' title='CSS TEST'><span style='font-size:30px;'>TEST for CSS DIV</span></a>
   </div>

   <div style='float:right'>
      Stuff on the right
   </div>

   <div style='clear:both;'></div>

</div>

<table cellspacing='0' cellpadding='2' align='center' width='1200' border='1'>

   <tr>

   <td> COL1 </td>
   <td> COL3 </td>

   </tr>

</table>

</body>

</html>

如果在平板电脑上查看,上述内容会将我的 div 从 100% 降低。但是在电脑上可以正常使用。

如果我删除表格,则 div 跨度为 100%

任何帮助将不胜感激。

你可以在http://zeissimages.com/test.html看到这个代码

只有在删除表定义时,它才能在平板电脑上正常工作。

【问题讨论】:

一定是一些我们在这里看不到的 CSS 东西。你能把你的代码放在一个 php 文件之外并重现这个问题吗? @clrockwell 我编辑了帖子并添加了实际代码和链接以查看它的实际效果 【参考方案1】:

好的。我无法在任何浏览器上重现(包括切换用户代理以模仿平板电脑),但我在 2 个 HP 触摸板(一个带有库存 WebOS,另一个带有 android ICS)上看到了错误。如果我将代码放入 jsfiddle 并在平板电脑上(以嵌入式模式)查看,则问题不存在。

首先,您应该移动您的&lt;div style="clear:both"&gt;&lt;/div&gt;,使其位于您的第一个主 div 和表格之间,例如:

<div>
</div>
<div style="clear:both"></div>
<table></table>

这能解决吗?

以防万一,我会提到你不应该包含所有这些内联样式,除非它是唯一的选择。此外,如果您清除表格,则可以完全排除清除 div。

【讨论】:

我尝试了你的建议,结果更糟:(对不起:)这真的很令人费解,因为它的样式是如此基本。我只是无法理解这张桌子上的 goig 是什么。【参考方案2】:

你不是说:

<div style="width:100%">
bla bla bla
</div>

<table style="width:800px;">
..
..
</table>

如果没有真正的代码,无法提出太多建议......

【讨论】:

我将真实代码添加到原始帖子中。如果去掉表格代码,则 div 会跨越平板电脑窗口的整个宽度。如果插入表格代码,则 div 会变窄并且看起来更小。

以上是关于为啥我的 div 被平板电脑上的表格弄乱了?的主要内容,如果未能解决你的问题,请参考以下文章

服务器上的路由弄乱了客户端的路由?

共享点日历​​弄乱了可访问性模式选项卡顺序

从组件调用的 angular 4 指令的多个实例弄乱了输入值

适用于 Iphone 6 和 Iphone 6 plus 的媒体 CSS

iPad上的方向变化弄乱了触摸

我怀疑 re.match 弄乱了控制流