2012-01-31 6 views
62

Un CSS px può essere una frazione? È consentito dagli standard? E se sì, i principali browser lo supportano?Un pixel CSS può essere una frazione?

Risolviamo le risposte con la documentazione, gente.

+0

@MetalFrog questa domanda proviene da una discussione sul lavoro :-) –

+3

Ironia della sorte, di recente ho dovuto usare un pixel frazionario per ottenere correttamente una griglia ordinabile nell'interfaccia utente jQuery. Quando il margine sul segnaposto era uguale o inferiore di un pixel rispetto al margine sugli elementi circostanti, la griglia si spostava su tutto il luogo durante il trascinamento. L'unica correzione (e uno cross-browser!) Era di ridurre il margine del segnaposto di 0,5 px. Quindi, tutto ha funzionato bene. Se è spec o no è per lo più pedante, devi fare quello che devi fare alla fine della giornata. –

+0

Ci sono delle regole su come una linea di meno di 1px dovrebbe essere resa dal broweser? Ho molte pagine (documenti Word convertiti in HTML) dove i bordi della tabella hanno una larghezza corrispondente a una frazione di pixel. Questi visualizzano come 1px in IE e Firefox ma il bordo non è affatto visibile all'interno di chrome – Andy

risposta

49

Sì, è possibile specificare i pixel frazionari. Dato che questo è stato parte dei CSS fin dalla prima versione, dovrebbe essere supportato da qualsiasi browser che supporti il ​​CSS.

Riferimento: CSS 2.1: 4.3.2 Lengths

"Il formato di un valore di lunghezza (contrassegnata da <lunghezza> in questa specifica ) è un <numero> (con o senza un punto decimale) immediatamente seguita da un'unità identificatore (ad esempio, px, em, ecc.). "

Quando gli elementi vengono visualizzati sullo schermo, la maggior parte dei browser naturalmente arrotonda la posizione al pixel più vicino quando si utilizza il livello di zoom 100%. A livelli di zoom più alti noterai che i valori dei pixel frazionari sono riconosciuti.

+0

Hai qualche documentazione che supporti la risposta? –

+1

@ KeesC.Bakker: l'ho appena aggiunto. :) – Guffa

+2

Il problema è, diversi browser girano in modo diverso: http://stackoverflow.com/a/5587820/405015 – thirtydot