html - Height calculation ambiguity of fixed-positioned table container -


let's assume have following document structure:

    <div class='container-table'>       <div class='container-cell'>         <div class='content'>          <!-- lot of text, images, ... -->         </div>       </div>     </div> 

here css:

  .container-table {     position:fixed;     height:100%;     width:100%;     top:0;     left:0;     display:table;   }    .container-cell {     display:table-cell;     vertical-align: middle;   }    .content {     position: relative;     height:90%;     width:90%;     left:50%;      margin-left:-45%;     overflow:scroll;   } 

the idea have vertically- , horizontally-centered box takes 90% of viewport's height , width. if content div overflows, should scroll.

this solution works fine in chrome , safari not in firefox. inspector shows problem: firefox ignores position:fixed when display:table present , calculates height of container-table summing height of children while safari/chrome calculate height looking @ browser's viewport (as should according position:fixed).

here's complete demo: https://jsfiddle.net/76pg43tx/

who right: firefox or safari/chrome or both? there workaround?

one solution can use using css following:

    .container-table {         position:fixed;         height:100%;         width:100%;         top:0;         left:0;         display:table;       }        .container-cell {         display:table-cell;         vertical-align: middle;       }        .content {         position: fixed;         height:90%;         width:90%;         left:50%;          margin-left:-45%;         top: 50%;         transform: translate(0, -50%);         overflow:scroll;       } 

check fiddle here.


Comments

Popular posts from this blog

php - failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request -

java - How to filter a backspace keyboard input -

java - Show Soft Keyboard when EditText Appears -