【发布时间】:2013-06-05 16:33:06
【问题描述】:
简短而无痛,我尝试了很多方法来获取元素,例如信息文本,绝对居中 (H/V) 不使用 使用 div、Javascript、jQuery 或其他任何方式。
问题是没有让它工作并且有很多不同的方法,但我正在失去我的头发试图让它跨浏览器兼容。 而且应该就是这么简单。
例如,在以下场景中,FF21 将 50% 的 margin-top 解释为 100% 没有任何逻辑原因。 (但移动设备没有)。
我正在使用<meta name="viewport" content="minimum-scale=1.0, width=device-width, maximum-scale=1.0, user-scalable=no" />
相关CSS:
body {
margin: 50% 0 0;
padding: 0;
border: 0;
display: block;
vertical-align: middle; /* removing this made no real difference at all */
font-family: Helvetica, Arial, MS Sans Serif;
font-size: 11pt;
text-align:center;
background-color: rgb(10, 50, 100);
color: #ddd;
}
注意事项:
- 在 Firefox 中,预期的垂直居中设置为 25% 的上边距(这在移动浏览器中看起来是错误的,但又一次)。
- 使用 HTML5
- 尝试避免任何形式的脚本和预先计算的负边距。浏览器应该按照您的要求正确居中。
JS-小提琴:http://jsfiddle.net/sfaVg/
【问题讨论】:
-
我 DID 尝试将 * 的高度设置为 100%,我 DID 玩弄垂直对齐,我 DID 尝试填充而不是边距,以及更多场景。我没有找到 ANY 在 ALL 常见浏览器中工作 EQUAL 的简单解决方案。
-
您想在没有包含元素的情况下居中?你为什么需要这个?
-
有内容(文字)。它不一定必须是主体,但我经常遇到不令人满意的麻烦,正确地居中某些东西需要很多“玩转”,然后在某些浏览器/屏幕/操作系统情况下看起来仍然令人毛骨悚然。例如,在所有浏览器中,50% 应该是 50%,而不是在 firefox 中是 100%,只是因为它是一种技巧小马,并且认为它是由彩虹组成的,并且 20% 更酷。是的...猜你明白我的意思。对不起,大声笑。
-
我可以将所有内容封装在大量 DIV 中以正确居中,但这对我来说似乎与“终极、干净的解决方案”相差甚远。
-
我完全同意你的观点,在 css 中居中不是直截了当的,这是它的缺点之一。 Flexbox 将来可能会对此有所帮助,但还不是跨浏览器。查看dabblet.com/gist/2403795——但如果没有包含元素,恐怕它会保持不可能:)
标签: android html css mobile cross-browser