8-stellige Hex-Codes?

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Seltsam, oder? 4-stellige Hex-Codes auch. Sie sind eine Möglichkeit, Alpha-Transparenzinformationen in das Hex-Format für Farben einzubringen. Möglicherweise sehen Sie sie plötzlich öfter, wenn Sie Chrome verwenden, da es in Version 52 eingeführt wurde und die DevTools scheinbar standardmäßig Farben mit Alpha-Transparenz in diesem Format anzeigen, selbst wenn Sie sie ursprünglich in einem anderen Format festgelegt haben.

Firefox unterstützt es auch, nur zur Information.

Schauen wir uns an, wie es funktioniert

.element {

  /* This is green */
  background: rgb(0, 255, 0);

  /* It's the same as this */
  background: #00ff00;

  /* We could make it 50% transparent like this */
  background: rgba(0, 255, 0, 0.5);

  /* Or, with an alpha hex like this */
  background: #00ff0080;

}

Die letzten beiden Ziffern stellen die Alpha-Transparenz dar. Aber warten Sie mal... die letzten beiden Ziffern sind "80", nicht "50". Dazu kommen wir noch.

Erinnern Sie sich zuerst, wie 3-stellige Hex-Codes funktionieren?

.element {

  /* This */
  background: #900;

  /* Is the same as this */
  background: #990000;

}

Jede Ziffer wird verdoppelt. Das Gleiche gilt für vier Ziffern.

.element {

  /* This */
  background: #0f08;

  /* Is the same as this */
  background: #00ff0088;

}

Die Formate werden manchmal als #RRGGBBAA und #RGBA bezeichnet.

Der AA-Teil ist eine Hex-Darstellung von 0-100 ist wie

0 = 00
1 = 03
2 = 05

9 = 17

10 = 1A
11 = 1C
12 = 1F

99 = FC
100 = FF

Deshalb waren "80" in dem Beispiel oben wirklich "50% Transparenz".

Außerdem ist hier eine Tabelle, die ich von hier übernommen habe.

Siehe den Stift XjbzAW von Chris Coyier (@chriscoyier) auf CodePen.

Sollten Sie es verwenden?

Wahrscheinlich nicht. Es ist noch nicht sehr gut unterstützt und hat keine Vorteile gegenüber rgba() oder hsla(), außer vielleicht einer winzigen Menge an gesparten Bytes.