Kann ein CSS-Pixel ein Bruchteil sein?


80

Kann ein CSS pxein Bruchteil sein? Ist es nach den Standards erlaubt? Und wenn ja, unterstützen die großen Browser dies?

Lassen Sie uns die Antworten mit Dokumentation untermauern, Leute.


@MetalFrog diese Frage stammt aus einer Diskussion bei der Arbeit :-)
Kees C. Bakker

3
Ironischerweise musste ich kürzlich einen Bruchpixel verwenden, um ein sortierbares Raster für die jQuery-Benutzeroberfläche richtig zu gestalten. Wenn der Rand auf dem Platzhalter gleich oder ein Pixel kleiner als der Rand auf den umgebenden Elementen war, verschob sich das Raster beim Ziehen über die gesamte Stelle. Die einzige Lösung (und eine browserübergreifende!) War, den Platzhalterrand um 0,5 Pixel zu verringern. Dann hat alles gut funktioniert. Ob es sich um eine Spezifikation handelt oder nicht, ist meistens pedantisch. Sie müssen das tun, was Sie am Ende des Tages tun müssen.
Chris Pratt

Gibt es Regeln, wie eine Zeile mit weniger als 1 Pixel vom Broweser gerendert werden soll? Ich habe viele Seiten (in HTML konvertierte Word-Dokumente), auf denen Tabellenränder eine Breite haben, die einem Bruchteil eines Pixels entspricht. Diese werden in IE und Firefox als 1px angezeigt, aber der Rand ist in Chrome überhaupt nicht sichtbar
Andy

1
War Ihre ursprüngliche Frage zu Brüchen oder Dezimalstellen? Ein Bruch wäre 1/3, während eine Dezimalzahl 0,33 wäre (Wiederholung). Mathematisch gibt es einen Unterschied, und wenn sich irgendetwas um die technischen Details der Mathematik kümmert, dann um Computer.
Mike

1
Nicht doppelt, aber verwandt - eine Diskussion über Teilpixel, die
Sandy Gifford

Antworten:


69

Ja, Sie können Bruchpixel angeben. Da dies seit der ersten Version Teil von CSS ist, sollte es von jedem Browser, der CSS überhaupt unterstützt, gut unterstützt werden.

Referenz: CSS 2.1: 4.3.2 Längen

"Das Format eines Längenwerts (in dieser Spezifikation mit <Länge> bezeichnet) ist eine <Nummer> (mit oder ohne Dezimalpunkt), unmittelbar gefolgt von einer Einheitenkennung (z. B. px, em usw.)."

Wenn die Elemente auf dem Bildschirm angezeigt werden, runden die meisten Browser die Position bei Verwendung einer Zoomstufe von 100% natürlich auf das nächste Pixel ab. Bei höheren Zoomstufen werden Sie feststellen, dass gebrochene Pixelwerte erkannt werden.


1
@ KeesC.Bakker: Das habe ich gerade hinzugefügt. :)
Guffa

6
Das Problem ist, verschiedene Browser runden unterschiedlich ab: stackoverflow.com/a/5587820/405015
dreißig Punkte

4
Fand einen interessanten Blog zu diesem Thema: ejohn.org/blog/sub-pixel-problems-in-css
cboler

12
Zur Verdeutlichung wäre ein Bruch 1/3, während eine Dezimalzahl 0,33 wäre (Wiederholung). Ich erkenne an, dass es sich teilweise um Semantik handelt (nicht um ein Hauptfach Mathematik, aber nicht), aber die richtige Antwort lautet, dass CSS keine Brüche oder gebrochenen Pixel unterstützt. Es werden jedoch dezimale Pixelwerte unterstützt.
Mike

4
@Mike: Der Begriff Bruch kann auf verschiedene Arten verwendet werden, genau wie der Begriff Dezimal, der entweder eine Zahl mit einem Bruchteil oder eine Zahl in Basis zehn angeben kann.
Guffa
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.