Sto cercando di ottenere un'intestazione di altezza fissa e un'area di contenuto che riempie lo schermo. Il contenuto div contiene una griglia telerik mvc. Ho provato alcuni suggerimenti su StackOverflow ma il controllo che è l'area del contenuto sembra sempre erroneamente dimensionato perché non tiene conto dell'altezza fissa dell'intestazione, quindi scorrerà il 40px in più se l'intestazione è 40px. Eventuali suggerimenti?Layout CSS per intestazione fissa e altezza del contenuto del 100%?
<div id="header">
</div>
<div id="content">
<telerik mvc grid control>
</div>
Css
html,body
{
margin:0;
padding:0;
height:100%;
}
#header {
position:absolute;
height: 40px;
left:0;
top:0;
width:100%;
background:green;
}
#content {
position: absolute;
top:40px;
left:0;
width:100%;
height:100%;
background:#eee;
}
UPDATE: Dovuto manualmente ridimensionare la griglia carico e finestra ridimensionare. Aggiungi
.ClientEvents(events => events.OnLoad("resizeGrid"))
<script type="text/javascript">
window.onresize = function() {
resizeContentArea($("#Grid")[0]);
}
function resizeGrid(e) {
debugger;
resizeContentArea($("#Grid")[0]);
}
function resizeContentArea(element) {
var newHeight = parseInt($(element).outerHeight(), 10) - parseInt($(".t-grid-header", element).outerHeight(), 10) - parseInt($(".t-grid-pager", element).outerHeight(), 10);
$(".t-grid-content", element).css("height", newHeight + "px");
}
</script>
Grazie, che sembra farlo. È incredibile come una cosa così semplice sia un tale dolore. – NullReference
grazie. non ho mai pensato di posizionare il contenuto div in modo assoluto prima. +1 –
Questa risposta è brillante. Questo metodo funziona alla grande in molti casi in cui 'calc()' sembrava necessario. Ad esempio, se si volesse fare 'width: calc (100% - 20px);', basta fare 'position: absolute; a sinistra: 0; a destra: 20px; 'con un contenitore relativamente posizionato. Questo rende il CSS usabile per me. Grazie, kei. –