iPad 上的 CSS 灵活框布局
Posted
技术标签:
【中文标题】iPad 上的 CSS 灵活框布局【英文标题】:CSS Flexible Box Layout on iPad 【发布时间】:2013-09-26 12:38:22 【问题描述】:我正在尝试使用适用于 iPad 的 flex 模型来获得一个非常简单的布局。
我有一个包含 div,它应该使内容 div 居中。
示例代码在所有浏览器和平台上都按预期运行,iPad(视网膜)除外。
在线使用各种 iPad 模拟器不会重现此问题。我只能在实际的 iPad 上复制它。这是它的截图:
我们将不胜感激任何和所有建议。
CSS:
.container
width: 510px;
height: 310px;
background: red;
display: flex;
display: -webkit-flexbox;
display: -ms-flexbox;
display: -webkit-flex;
flex-direction: row;
flex-wrap: wrap;
-webkit-box-pack: center;
-moz-box-pack: center;
-ms-flex-pack: center;
-webkit-justify-content: center;
justify-content: center;
-webkit-flex-align: center;
-ms-flex-align: center;
-webkit-align-items: center;
align-items:center;
border: 2px solid;
padding: 5px;
margin: 0;
.content
float: left;
width: 150px;
height: 150px;
background: green;
border: 2px solid;
padding: 0;
margin: 0;
.content2
float: left;
width: 150px;
height: 150px;
background: blue;
border: 2px solid;
padding: 0;
margin: 0;
html:
<div class="container">
<div class="content">
<p>Content</p>
</div>
<div class="content2">
<p>Content2</p>
</div>
</div>
【问题讨论】:
【参考方案1】:您遗漏了 2009 年旧草案中的一些属性(或命名错误)。您的容器 CSS 应如下所示:
http://cssdeck.com/labs/ci9imeed
.container
width: 510px;
height: 310px;
background: red;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-box-pack: center;
-moz-box-pack: center;
-ms-flex-pack: center;
-webkit-justify-content: center;
justify-content: center;
-webkit-box-align: center;
-moz-box-align: center;
-ms-flex-align: center;
-webkit-align-items: center;
align-items: center;
border: 2px solid;
padding: 5px;
margin: 0;
但是请注意,没有一个具有 2009 Flexbox 实现的浏览器(android、旧版 Safari、旧版 Firefox)支持包装。
【讨论】:
谢谢你。但是,在 ipad 上查看您的示例,内容 div 仍然没有居中... 罪魁祸首是子元素上的浮动。根据规范,float 应该在弹性项目上被忽略,但它会导致 Webkit 2009 实现中发生奇怪的事情。使用display: inline-block
代替您的后备。
你能用内联块对齐吗?我现在正在视网膜、ipad3 和 ipad1 上进行测试。也上不了……
非常抱歉cimmanon。你的答案有效!我错过了 -moz-box 属性。谢谢!一直在拉头发。
嗨肉桂。我在 iPad 3(操作系统 6.1.3)上检查了您的 cssdeck 示例,并且 div 没有居中。这是一些已知问题吗?以上是关于iPad 上的 CSS 灵活框布局的主要内容,如果未能解决你的问题,请参考以下文章