2016-02-19 76 views
4

当我在页面顶部添加声明时,我的flexbox布局会崩溃,当我删除doctype时,它会按预期工作。问题发生在chrome/firefox/ie中。Doctype中断flexbox布局

.grid { 
 
    height: 100%; 
 
    display: flex; 
 
    flex-flow: column nowrap; 
 
    flex-grow: 1; 
 
    border: 1px solid black; 
 
} 
 
.row { 
 
    width: 100%; 
 
    display: flex; 
 
    flex-flow: row nowrap; 
 
    flex-grow: 1; 
 
} 
 
.cell { 
 
    flex-grow: 1; 
 
    border: 1px solid black; 
 
}
<div class="grid"> 
 
    <div class="row"> 
 
    <div class="cell"></div> 
 
    <div class="cell"></div> 
 
    <div class="cell"></div> 
 
    <div class="cell"></div> 
 
    <div class="cell"></div> 
 
    <div class="cell"></div> 
 
    </div> 
 
    <div class="row"> 
 
    <div class="cell"></div> 
 
    <div class="cell"></div> 
 
    <div class="cell"></div> 
 
    <div class="cell"></div> 
 
    <div class="cell"></div> 
 
    <div class="cell"></div> 
 
    </div> 
 
</div>

https://plnkr.co/edit/jKklf2zeYBjOgTsSQnvr

它应该是什么样子:

grid

+1

如何还有人编写HTML代码没有默认文档类型?文档类型不只是您可以随心所欲添加或删除的内容。它应该在那里,*期*。有一个文档类型不会“破坏”任何东西 - 删除它。 – BoltClock

+0

@BoltClock我不认为有人说这是一个默认的编码风格的东西,所以请不要像有人踏上你的脚趾。 – Jesse

回答

5

包括文档类型和添加到您的CSS:

html, body { height: 100%; } 

使用百分比高度时,必须为所有直到并包括根元素的父元素指定高度。在这里阅读更多:

当你删除浏览器中输入怪癖模式当家长的高度auto元素的百分比高度相对解析为视的doctype。在这里阅读更多:

+1

我其实已经尝试过了,但是我一定错过了一些东西,但是现在它可以工作了,所以谢谢:) – Jesse

+0

为什么这样做会这样呢? –

+0

@NathanGoings,解释是在答案中发布的链接。 –