width:auto....nicht mehr als 100%
Stefan
- css
Hallo, ich stehe vor einem Problem,
warum wird bei der Angabe von width:auto bei divs, die divs nicht größer als 100%...(im Firefox)
Wie kann man das Problem lösen ?
folgendes beispiel (Hintergrund wird nicht weiter angezeigt):
.div_a{
width:auto;
height:100px;
background-color:red;
}
<div class="div_a">
so viele aufeinanderfolgende Zeichen ohne Leerzeichen, das es mehr als
100% erfordert
</div>
Mit overflow kannst du Überlängen nach oben und unten regeln.
Hallo,
Mit overflow kannst du Überlängen nach oben und unten regeln.
das löst allerdings nicht das Problem, dass ein Hintergrund nicht mehr angezeigt wird.
Lösen kann man das min min-width - scheint allerdings nur in Verbindung mit position:absolute bzw. fixed zu funktionieren. Der Internet Explorer (zumindest in Version 6) zieht den Hintergrund beim Overflow automatisch mit, kennt allerdings dafür min-width nicht. Man kann ihm aber per Conditional Comment eine Breite unterjubeln.
Beispiel:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
Test
</title>
<style type="text/css">
html,body
{
height:100%;
width:100%;
margin:0px;
}
#meindiv
{
position:absolute;
top:0px;
left:0px;
min-width:100%;
background-color:green;
}
</style>
<!--[if IE 6]>
<style type="text/css">
#meindiv
{
width:100%;
}
</style>
<![endif]-->
</style>
</head>
<body>
<div id="meindiv">
blablablablablablablablablablablabla
</div>
</body>
</html>
Gruß, Christian
Hi,
warum wird bei der Angabe von width:auto bei divs, die divs nicht größer als 100%...(im Firefox)
Weil folgende Gleichung gilt:
'margin-left' + 'border-left-width' + 'padding-left' + 'width' + 'padding-right' + 'border-right-width' + 'margin-right' = width of containing block
bei width:auto kann der computed value von width nur dann größer als 100% werden, wenn mind. einer der horizontalen Margins einen negativen Wert hätte (border-width und padding sind nie negativ).
folgendes beispiel (Hintergrund wird nicht weiter angezeigt):
Das dürfte an overflow:visible liegen - der Hintergrund hört an der border des Elements auf, der Inhalt läuft darüber hinaus.
Wie kann man das Problem lösen ?
Das Problem, das Firefox korrekt handelt? Wieso ist das ein Problem?
Oder das Problem, daß Du width:auto benutzt, obwohl Du etwas anderes willst?
cu,
Andreas
Und wie kann ich jetzt erreichen das der Hintergrund im Firefox trotzdem angezeigt wird ?