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 灵活框布局的主要内容,如果未能解决你的问题,请参考以下文章

css flex布局在某些iPad上不起作用

iPad的自适应布局

css CSS灵活和流畅的布局

iPad 和 iPhone 上的自动布局?

如何根据 ipad 上的方向更改布局?

css bakery.html的代码,灵活的网格布局。