2011-08-11 34 views
1

我正在嘗試使用新的css3 flexbox模型進行佈局。我想要一個佔據100%高度的頁面,使用一個固定的頁腳和頁眉,剩下的內容位於中間的一列。內容列應該佔據寬度的100%,直到固定的最大寬度。另外,一切都應該在中心對齊。最大寬度不適用於Firefox的靈活框模型?

我設法完全按照this demo的規範來構建它,這在Chrome或任何基於webkit的瀏覽器中都很出色。但它在Firefox中打破了,在這裏添加「max-width」屬性使得所有的東西都是一個固定的列向左對齊。

任何人都可以讓我知道爲什麼這不是在Firefox中工作?這是對規範的不同解釋,還是它是我的代碼中的錯誤?

這是演示的HTML:

<div class="container"> 
     <div class="header">Header</div> 
     <div class="content"> 
      <div class="fixed"> 
       <h1>Title</h1> 
       <div class="someText"> 
        <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla vehicula sodales risus quis rhoncus. Donec suscipit lorem ante. Nullam tempor, lorem sit amet faucibus dictum, est nisl aliquam felis, a tempor arcu massa sit amet felis. Donec a blandit mi. Sed posuere, lacus eu scelerisque porttitor, turpis sem aliquam nulla, ut rutrum sem libero a felis. Morbi nec sodales odio. Nulla facilisi. Sed consectetur pellentesque arcu, in laoreet nulla semper ac. Pellentesque vulputate sem eget eros condimentum in malesuada dui convallis. Vivamus tristique velit id justo laoreet vestibulum. Nulla orci nisl, vulputate vitae facilisis sit amet, ultricies id massa. Sed eget faucibus magna. Integer a leo sem, hendrerit fermentum libero.</p> 
        <p>In gravida faucibus dui, quis bibendum est ornare nec. Cras ac metus a dui rhoncus mattis. Nulla ut hendrerit est. Cras sed sem felis, venenatis tincidunt ipsum. Vestibulum id sodales ligula. Nunc sit amet neque vel ante aliquam commodo. Aenean elit felis, imperdiet sagittis lacinia ut, tincidunt accumsan arcu. Vivamus dapibus ligula a est convallis eget tincidunt libero interdum. Nunc mattis, odio et tincidunt egestas, orci ante pharetra nulla, hendrerit ultrices nunc ipsum nec sem. Vestibulum egestas leo pulvinar massa mollis sit amet dapibus velit venenatis. Etiam molestie posuere lacinia. Nam ut nulla elit, ac tincidunt tellus. Nulla mollis metus id ante accumsan et mattis est ultricies. Morbi nec nunc nulla. Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p> 
       </div> 
      </div> 
     </div> 
     <div class="footer"> 
      <div class="fixed">Footer</div> 
     </div> 
    </div> 

,這是CSS:

  body, html { 
       width: 100%; 
       height: 100%; 
       padding: 0; 
       margin: 0; 
       background:black; 
      } 

      .container { 
       height: 100%; 
       width: 100%; 
       display: -webkit-box; 
       -webkit-box-orient: vertical; 

       display: -moz-box; 
       -moz-box-orient: vertical; 

      } 

      .header, .footer { 
       background-color: #32403C; 
       height: 40px; 
       width: 100%; 
       margin: 0; 
       line-height: 40px; 
       vertical-align: middle; 
       text-align: center; 
       color: #FFF; 
       -webkit-box-pack: center; 
       -moz-box-pack: center; 
       box-pack: center; 
       display: -moz-box; 
       display: -webkit-box; 
       -webkit-box-flex: 0;  
      } 


      .content { 
       display: -webkit-box; 
       -webkit-box-orient: vertical; 
       -webkit-box-flex: 1; 

       display: -moz-box; 
       -moz-box-orient: vertical; 
       -moz-box-flex: 1; 

       -webkit-box-align:center; 
       -moz-box-align:center; 
       box-align:center; 

       -webkit-box-pack: center; 
       -moz-box-pack: center; 
       box-pack: center; 
      } 

      .fixed { 
       background:#787; 
       -moz-box-flex: 1; 
       -webkit-box-flex: 1; 
       box-flex: 1; 
       width:100%; 
       max-width:480px; 
       overflow:hidden; 
       display: -webkit-box; 
       display: -moz-box; 
       -webkit-box-orient: vertical; 
       -moz-box-orient: vertical; 
      } 

      .someText { 
       -webkit-mask-image: -webkit-linear-gradient(black, black 75%, transparent 95%); 
       -moz-box-flex: 1; 
       -webkit-box-flex: 1; 
       box-flex: 1; 
       overflow:scroll;  

      } 

      .content { background: #876; } 
      .colorLight { background-color: #A6687B; } 
      .colorMedium { background-color: #8C605F; } 
      .colorDark { background-color: #735E5A; } 

回答

2

什麼您使用的是Gecko的存在XUL Flexbox的模型,它沒有任何關係使用舊顯然你閱讀的CSS flexbox草稿(這也與目前的flexbox草稿無關,它使用完全不同的顯示值等)。

特別是,display: -moz-box已經存在了10年以上,並且具有它的任何行爲,而您閱讀的flexbox草稿更新且具有與-moz-box行爲完全不同的行爲。 WebKit flexbox實現會在第一次W3C草案後發佈,或者與它們同時發佈,因此更接近這些草案所提及的內容。但是,目前的草案與那些早期草案完全不同...