Perché utilizzare un codice HTML / CSS larghezza del 99,9% invece del 100%?
Domanda
ho visto molti sviluppatori che scrivono HTML o CSS larghezze di stile in linea di 99,9% nei posti in cui avrei usato al 100%. C'è un motivo valido per utilizzare il 99,9%? Ha qualche differenza efficace al 100%?
Modifica per MSalters retweet un'ottima domanda:? Considering that 99.9% is one pixel off above 500 pixels, why not 99.99%?
direi che ha ragione, che se stai andando con il dirty hack
si dovrebbe usare il 99,99%, qualcuno non è d'accordo
Ulteriori riferimenti:
- Il commento di @ Michael Stum sulla proprietà CSS zoom mi ha portato a questo link interessante su innescando hasLayout con
zoom
: http://www.bennadel.com/blog/1354-The-Power-Of-ZOOM-Fixing-CSS-Issues-In -Internet-Explorer.htm . - @Andrew Dunn ha offerto questo link incredibilmente completo sulla hasLayout: http://www.satzansatz.de /cssd/onhavinglayout.html
Soluzione
La proprietà hasLayout
E 'un hack sporco utilizzato per impostare la proprietà specifica hasLayout
IE dell'elemento su true. La proprietà hasLayout
"determina come elementi disegnano e vincolati loro contenuto, e in relazione con altri elementi, e reagiscono e gli eventi di trasmissione applicazione / utente." Dando un layout
elemento è un modo semplice per risolvere molti bug relativi di layout che appaiono in Internet Explorer.
Che cosa è con il 99,9%?
Impostazione della larghezza 99,9% è un modo per innescare esso. La ragione per cui si usa il 99,9% è perché il layout è dato a un elemento se width
è impostato su qualcosa di diverso da auto
. Impostando un percentuale evita la necessità di utilizzare una larghezza fissa.
Dopo alcuni test in jsFiddle, sono venuto alla conclusione che in realtà non è necessario utilizzare per una larghezza di 99,9%, usando una larghezza di 100% è altrettanto efficace. http://jsfiddle.net/3qfjW/2/ (IE-Only). Sembra che l'impostazione width
al 99,9% potrebbe essere stato un comune equivoco che si conficcò .. diffondere la parola persone.
Altri metodi
Si può anche innescare hasLayout
utilizza zoom: 1;
Anche se questo è il metodo preferito per molti, in quanto non fa confusione con altre caratteristiche legati agli stili di un elemento, è anche il codice CSS valido, che non è la possibilità di utilizzare per un po ' gli sviluppatori.
Letture consigliate
Per ulteriori metodi per innescare hasLayout
check out: http://www.satzansatz.de/cssd /onhavinglayout.html
Per ulteriori informazioni sul controllo di proprietà hasLayout
fuori l'articolo di MSDN su hasLayout
http://msdn.microsoft.com/en-us/library/bb250481 (VS.85) aspx (Questo è in realtà un grande letto, un sacco di informazioni dettagliate)
Altri suggerimenti
E 'vero width
di nulla, ma auto
e grilletto zoom
hasLayout, e zoom
è la proprietà / valore più flessibile in quanto non fa confusione con la larghezza, ma non credo che sia il motivo per cui si è visto che gli sviluppatori utilizzano il 99,9% .
In taluni casi galleggianti è necessario che la larghezza combinata dei galleggianti non è pari al 100% (se specificato in percentuale) perché IE6 calcola non correttamente che, oltre il 100% e solitamente quest'ultimo galleggiante scende.
La soluzione è quella di specificare un margine destro -1px solo per IE o fare la somma 99,99%.
ho documentato il bug qui . Quindi, se si è legato o meno a quello che stavi vedendo, spero che il collegamento bug aiuta chiunque sperimentandola.