relative Breite von <button>
split.s
- css
0 suit0 split.s
0 Gunnar Bittersmann
Gibts irgendeine Möglichkeit, dass sich die Breite des <button> -tags der Breite des parent-blocks anpasst wie das bei display:block normalerweise der Fall ist?
Habe es schon mit width:100% probiert, aber irgendwie überlappt das dann an der rechten Seite.
Ich verstehe nicht, wieso ich das nicht mit display:block hinbekommen kann weil ich dadurch ja die vorherige display-Einstellung (vermutlich inline-block) überschreibe.
Wäre für einen Tipp sehr dankbar.
Wäre für einen Tipp sehr dankbar.
Entschuldige meine Fachsprache:
Hä?
Du willst, dass ein <button> so breit ist, wie der Kontainer in dem er sich befindet. Wie machst du das? display:block funktioniert nicht.
@@split.s:
nuqneH
Habe es schon mit width:100% probiert, aber irgendwie überlappt das dann an der rechten Seite.
Lass mich suits Nachfrage spezifizieren: Häh?
Qapla'
Hi,
Habe es schon mit width:100% probiert, aber irgendwie überlappt das dann an der rechten Seite.
Lass mich suits Nachfrage spezifizieren: Häh?
Ist doch ganz klar: der Button hat width:100%, dazu noch die bei Button übliche Border (+evtl. padding) - und mit dem default für overflow (visible) ergibt sich logischerweise das Überhängen rechts.
Warum spit.s sich darüber allerdings wundert, versteh ich auch nicht - ist ja alles klar spezifiziert.
cu,
Andreas
Ist doch ganz klar: der Button hat width:100%, dazu noch die bei Button übliche Border (+evtl. padding) - und mit dem default für overflow (visible) ergibt sich logischerweise das Überhängen rechts.
Das kann ich in keinem Browser bestätigen. Standard schein zu sein, dass für button und input so etwas wie box-sizing: border-box gilt. (Wenn nicht, wäre das die Lösung. Mit Vendor-Prefixes, sofern nötig.) Formularfelder sind ja zumindest gemäß CSS 2.1 replaced inline elements, auf die das konventionelle Box-Modell nicht zutrifft.
<!DOCTYPE html>
<style>
[code lang=css]div { width: 400px; background: red; padding: 20px 0; }
button, input { width: 100%; padding: 10px; border: 10px solid blue; font: 16px sans-serif; }
</style>
<div>
<button type="button">Foo</button>
<input type="button" value="Foo">
</div>[/code]
Hier hängt in keinem Browser etwas über (IE < 8 habe ich allerdings nicht getestet).
Kontrolle auch so möglich:
<script>
[code lang=javascript]alert(document.getElementsByTagName('button')[0].offsetWidth);
</script>[/code]
Ergibt 400, nicht 440.
Mathias