ich baue ein Layout, das dynamische Höhe hat (wie die meisten Leute). Ich habe eine Weile gesucht, aber keinen ähnlichen Fall mit meinem gefunden. so ist es hier, meine vereinfachte Code:css calc und min-height können nicht gut zusammenpassen
html:
<div id="body"><div id="content">
content
</div>
</div>
<div id="footer">
abc
</div>
css:
#footer{
position: absolute;
bottom: 0;
width: 100%;
background: #ddd;
}
#body{
padding: 60px 50px 70px 50px;
position: relative;
min-height: calc(100% - 130px);
}
#content{
font-family: verdana;
margin-left: 200px;
border-left: 5px solid #ddd;
padding: 0 0 0 10px;
min-height: 100%;
min-width: 500px;
}
body{
margin:0;
overflow-y:scroll;
height:100%;
position:relative;
}
html{
height:100%;
}
das Problem ist, wenn ich diesen Code verwenden, wird die Inhaltshöhe nicht richtig berechnet und die Ergebnis sehen aus wie this fiddle während ich versuche zu tun ist, wenn der Inhalt kurz ist, sollte es wie this aussehen und wenn der Inhalt lang ist, sollte es wie this aussehen.
wenn ich ändern die min-height
zu height
, wenn der Inhalt kurz, ich bekommen, was ich wollte, aber wenn der Inhalt lange ist, bekomme ich this annoying layout
es scheint calc
können die Höhe Attribut nicht lesen, wenn dies nicht der Fall angegeben (mit min-height
), aber wenn die height
angegeben ist, dann kann ich nicht dynamische Höhe, gibt es eine andere Lösung, um dies zu erreichen?
PS: , was ich versuche zu tun, um die Grenze von #content
Strecken machen nach seinem Inhalt mit minimaler Höhe einer Seitenhöhe
Anmerkung:
einer andere seltsame Tatsache ist, tatsächlich arbeitet mein gegenwärtiger Code an spätestem Chrom und IE, aber habe dieses Problem auf spätestem firefox und Oper. Ich habe versucht, das Problem mit jsfiddle zu reproduzieren, und zu meiner Ehrfurcht, alle Browser haben das gleiche Problem, ich habe alle verwandten HTML und CSS (kopieren Sie die generierte HTML und CSS) zu jsfiddle nur um zu finden, dass mein Code ist überhaupt nicht funktioniert, bin ich sehr verwirrt
danke für deine antwort, da dies eine alte frage ist, ich es nicht mehr aufspüre, und gerade jetzt habe ich mich in meine SO eingeloggt und deine antwort gefunden, ich habe es nicht in meinem projekt getestet, da ich das design geändert habe, aber Ihre Antwort ist meinem gewünschten Ergebnis am nächsten, daher werde ich Ihre Antwort als die beste Antwort markieren – am05mhz