Warum würden Sie verwenden eine HTML / CSS Breite von 99,9% anstelle von 100%?
Frage
Ich habe viele Entwickler schreiben HTML oder CSS Inline-Stil Breiten von 99,9% in Orten zu sehen, wo ich 100% verwenden würde. Gibt es einen triftigen Grund für die Verwendung von 99,9%? Hat es eine wirksame Differenz zu 100%?
EDIT retweet MSalters' sehr gute Frage: Considering that 99.9% is one pixel off above 500 pixels, why not 99.99%?
Ich würde vermuten, er ist richtig, dass, wenn Sie mit dem dirty hack
gehst sollten Sie 99,99% verwenden, wird jemand anderer Meinung
Weitere Referenzen:
- @ Michael Stum Kommentar über die CSS Zoom Eigenschaft führte mich zu diesem interessanten Link zu Triggern hasLayout mit
zoom
: http://www.bennadel.com/blog/1354-The-Power-Of-ZOOM-Fixing-CSS-Issues-In -Internet-Explorer.htm . - @ Andrew Dunn bot diesen unglaublich umfassenden Link auf hasLayout: http://www.satzansatz.de /cssd/onhavinglayout.html
Lösung
Die hasLayout
Eigenschaft
Es ist ein schmutziger Hack verwendet, um die IE spezifische hasLayout
Eigenschaft des Elements auf true zu setzen. Die hasLayout
Eigenschaft „bestimmt, wie Elemente zeichnen und gebunden deren Inhalt, die Interaktion mit und beziehen sich auf andere Elemente, und reagieren auf und Sende application / Benutzerereignisse.“ ein Element layout
zu geben, ist eine einfache Möglichkeit, viele Layout bezogene Fehler zu beheben, die in Internet Explorer angezeigt werden.
Was ist mit dem 99,9%?
Zur Einstellung der Breite bis 99,9% ist eine Möglichkeit, es auszulösen. Der Grund, warum Sie 99,9% verwenden würden, weil das Layout ein Element ist gegeben, wenn sein width
auf etwas anderes als auto
gesetzt. die Notwendigkeit, eine feste Breite zu verwenden, verhindert, dass es auf einen Prozentsatz einstellen.
Nach einigen Tests in jsFiddle, hat mich zu dem Schluss gekommen, dass es wirklich nicht notwendig ist, eine Breite von 99,9% zu verwenden, eine Breite von 100% verwendet, ist genauso effektiv. http://jsfiddle.net/3qfjW/2/ (IE-Only). Es scheint, dass Einstellung width
bis 99,9% gewesen sein mag ein verbreiteter Irrtum die stecken .. das Wort verbreiten Menschen.
Andere Methoden
Sie können auch Auslöser hasLayout
mit zoom: 1;
Während dies die bevorzugte Methode für viele ist, wie es verwirrt nicht mit anderen Stil bezogenen Funktionen eines Elements ist es auch ungültig CSS-Code, die Verwendung für einige ist keine Option Entwickler.
Weiterführende Literatur
Für weitere Methoden zum Trigger hasLayout
check out: http://www.satzansatz.de/cssd /onhavinglayout.html
Für weitere Informationen über die hasLayout
Eigenschaft Check-out des MSDN-Artikel auf hasLayout
http://msdn.microsoft.com/en-us/library/bb250481 (VS.85) aspx (Dies ist eigentlich ein großer lesen, viele detaillierte Informationen)
Andere Tipps
Es ist wahr width
alles andere als auto
und zoom
Trigger hasLayout und zoom
ist flexibler Eigenschaft / Wert, da es nicht mit Zohan an der Breite tut, aber ich glaube nicht, das ist der Grund, warum Sie sahen die Entwickler von 99,9% verwenden .
In bestimmten Fällen schwebend ist es notwendig, dass die kombinierte Breite des Schwimmer summiert sich nicht zu 100% (wenn in Prozent angegeben), weil IE6 berechnet falsch, dass sie sich über 100% und in der Regel dieser Schwimmer fällt.
Die Lösung ist entweder auf einen -1px rechten Rand angeben nur für IE oder die Summe von 99,99% machen.
Ich habe den Fehler dokumentiert hier . Egal, ob es sich bezieht oder nicht, was Sie sehen, hoffen, dass die Bug-Link es jemand erfährt hilft.