Hex colors: Numeric representation for “transparent”?

后端 未结 8 881
隐瞒了意图╮
隐瞒了意图╮ 2020-12-05 09:56

I am building a web CMS in which the user can choose colours for certain site elements. I would like to convert all colour values to hex to avoid any further formatting hass

相关标签:
8条回答
  • 2020-12-05 10:03

    The alpha channel defines the transparency value of a color, so any color is 100% transparent as long as the alpha value is 0. Typically this four-channel color type is known as RGBA.

    You can specify RGBA in CSS like so:

    div {
        background: rgba(200, 54, 54, 0.5); /* 50% transparent */
    }
    

    Note that not all browsers support RGBA, in which case you can specify a fallback:

    div {
        background: rgb(200, 54, 54); /* fallback */
        background: rgba(200, 54, 54, 0.5); /* 50% transparent */
    }
    

    More information regarding browser support and workarounds can be found here.

    0 讨论(0)
  • 2020-12-05 10:03

    Very simple: no color, no opacity:

    rgba(0, 0, 0, 0);
    
    0 讨论(0)
  • 2020-12-05 10:08

    There are two common approaches for this: either reserve a specific color as being "transparent," in which case you cannot use that color in images without it appearing transparent, or define a fourth channel alongside red, green, and blue called "alpha" which indicates translucency/transparency.

    0 讨论(0)
  • 2020-12-05 10:16

    HEXA - #RRGGBBAA

    There's a relatively new way of doing transparency, it's called HEXA (HEX + Alpha). It takes in 8 digits instead of 6. The last pair is Alpha. So the pattern of pairs is #RRGGBBAA. Having 4 digits also works: #RGBA

    I am not sure about its browser support for now but, you can check the DRAFT Docs for more information.

    § 4.2. The RGB hexadecimal notations: #RRGGBB

    The syntax of a <hex-color> is a <hash-token> token whose value consists of 3, 4, 6, or 8 hexadecimal digits. In other words, a hex color is written as a hash character, "#", followed by some number of digits 0-9 or letters a-f (the case of the letters doesn’t matter - #00ff00 is identical to #00FF00).

    8 digits

    The first 6 digits are interpreted identically to the 6-digit notation. The last pair of digits, interpreted as a hexadecimal number, specifies the alpha channel of the color, where 00 represents a fully transparent color and ff represent a fully opaque color.

    Example 3
    In other words, #0000ffcc represents the same color as rgba(0, 0, 100%, 80%) (a slightly-transparent blue).

    4 digits

    This is a shorter variant of the 8-digit notation, "expanded" in the same way as the 3-digit notation is. The first digit, interpreted as a hexadecimal number, specifies the red channel of the color, where 0 represents the minimum value and f represents the maximum. The next three digits represent the green, blue, and alpha channels, respectively.

    For the most part, Chrome and Firefox have started supporting this:

    0 讨论(0)
  • 2020-12-05 10:18

    You can use this conversion table: http://roselab.jhu.edu/~raj/MISC/hexdectxt.html

    eg, if you want a transparency of 60%, you use 3C (hex equivalent).

    This is usefull for IE background gradient transparency:

    filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3C545454, endColorstr=#3C545454);
    -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#3C545454, endColorstr=#3C545454)";
    

    where startColorstr and endColorstr: 2 first characters are a hex value for transparency, and the six remaining are the hex color.

    0 讨论(0)
  • 2020-12-05 10:19

    I was also trying for transparency - maybe you could try leaving blank the value of background e.g. something like

    bgcolor=" "
    
    0 讨论(0)
提交回复
热议问题