EDIT:從Chrome 34開始,以下構造將按預期正確呈現。從這之後,它實際上是 ealier Chrome版本中的一個錯誤,並且這個相對簡單的CSS 只需的作品。帶有flexbox的視口高度繼承(Chrome中的不一致)‽
所以我剛剛發現viewport-percentage lengths,我想他們會去偉大的使用Flex-盒圓滑的響應式佈局的測試。令人驚訝的是,Firefox和Internet Explorer以同樣的方式呈現它,並且與預期的一樣。這一次,Chrome拒絕做我說的。
我想:沒有滾動條,全部div
元素根據父母改變大小,使用height: 100%
,即使沒有內容也可見的框佈局,插入塊級內容到佈局中。
爲了更具體地說明原因,它是父元素的高度,似乎不被繼承。在這種情況下,我期望height: 100%
在內部元素上導致父元素的高度,它本身是70vh
(等於視口高度的70%)。
如果內部沒有內部div
,Chrome根本就不顯示該元素(與FF/IE不同),就好像它們根本就不是塊元素(沒有高度爲空)。
請告訴我:
- 它是一個未公開Chrome有錯誤(或根本的Webkit需要額外屬性)?
- 如果不是錯誤:FF和IE以這種方式行爲的原因是什麼(看似正確)?
- 可能
flex-direction: column
是問題(修改元素流)?
畢竟,它說I can use it。
下面的代碼:http://jsfiddle.net/ZPRdh/
這裏的渲染:
編輯
似乎flex-box
在這個ISS無關UE。下面的HTML頁面再現佈局理念,也使得同樣在IE和FF,但不能在Chrome:
<!DOCTYPE html>
<html>
<head>
<title>stackoverflow.com/questions/19450503/</title>
<style type="text/css">
body{background-color:#000;margin:0;font:normal 4em sans-serif;color:#888;}
header,section,footer{overflow:hidden;}
header,section,footer,article,figure{display:block;margin:0;padding:0;}
header {background-color:#333;height:20vh;}
section{background-color:#555;height:70vh;}
footer {background-color:#777;height:10vh;}
article{background-color:#999;width:20vmin;height:20vmin;}
figure {background-color:#BBB;width:50%;height:50%;}
</style>
</head>
<body>
<header></header>
<section>
<article>
<figure></figure>
</article>
</section>
<footer></footer>
</body>
</html>
要麼我(和其他人)沒有得到的東西在這裏根本,還是有一個實際的意外不一致在Chrome中。