html - 33% + 33% + 34% 与 iOS 上的 100% 宽度不同

标签 html ios css responsive-design

我遇到这样一种情况,即 3 个宽度分别为 33%、34% 和 33% 的 div 加起来与一个宽度为 100% 的 div 的像素数不同。考虑以下完整的 html 片段:

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title>ios math test</title>
</head>
<body>
    <div style="width:100%; height:3em; background-color: green;"></div>
    <div style="width:33%; height:3em; float:left; background-color: red;"></div>
    <div style="width:34%; height:3em; float:left; background-color: red;"></div>
    <div style="width:33%; height:3em; float:left; background-color: red;"></div>
</body>
</html>

您会注意到 iPhone、iPad 甚至某些 IOS 桌面实例上的 Safari 会显示 100% 的 div 比其下方 div 的宽度总和还要长。这看起来很奇怪,或者表明我对宽度如何工作的理解存在缺陷,或者 IOS 正在扰乱我们的头脑。

我测试过的所有苹果设备都表现出这种行为(macbook 上的 safari、ipad 上的 safari、iphone 上的 safari、ipad 上的 chrome、iphone 上的 chrome 等等)。在 Windows 框上使用 chrome、在 Windows 框上使用 safari 或 android 时,它不会表现出这种行为。

这是一个 jsfiddle:http://jsfiddle.net/zd6wx/

在 IOS 设备(safari、chrome 等...)上表示它的正确方法是什么,它也能在其他设备(例如...android)上正确呈现?我不想使用表格,我只想使用 javascript 作为最后的选择。

谢谢

最佳答案

您需要包含 box-sizing 属性。要覆盖所有浏览器,请使用:

 -webkit-box-sizing: border-box; 
 -moz-box-sizing: border-box;   
  box-sizing: border-box;

查看实际效果:http://jsfiddle.net/5gfdZ/1/

关于html - 33% + 33% + 34% 与 iOS 上的 100% 宽度不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23545153/

相关文章:

css - iPad Safari 浏览器中的样式问题,设置高度宽度不起作用

javascript - 如何创建一个进度条,每 20% 和时间间隔(毫秒)改变颜色直到填满?

html - 链接文本上方的空白区域

javascript - 如何在图像调整大小时缩放图像跨度的 x 和 y 坐标?

ios - 在不同的 View 上更改 iOS 状态栏颜色

iphone - Spotify Simple Player 示例和 libspotify

ios应用程序在 Debug模式下运行完美,但在 Release模式下崩溃

html - 如何使用 float : left? 垂直居中输入

html - CSS:真实字体不工作

javascript - 如何使用 "position:fixed"将 img 固定到弹出式 div?