0

私はこれを使用しています:cssプログレスバー

その素晴らしい、そして私たちは事実上あらゆる側面をカスタマイズしました。問題は、グラデーションが本当に嫌いなのですが、グラデーションはrgba値になっているということです。

スタイリングを終了できるように、グラデーションを16進値に変更する方法を知っている人はいますか。

(私たちが持っているcss)は次のとおりです。

background-color: #74d04c;
/* Webkit background stripes and gradient */
background: -webkit-gradient(linear, 0 0, 44 44, color-stop(0, rgba(255, 255, 255, 0.17)), color-stop(0.25, rgba(255, 255, 255, 0.17)), color-stop(0.26, rgba(255, 255, 255, 0)), color-stop(0.5, rgba(255, 255, 255, 0)), color-stop(0.51, rgba(255, 255, 255, 0.17)), color-stop(0.75, rgba(255, 255, 255, 0.17)), color-stop(0.76, rgba(255, 255, 255, 0)), color-stop(1, rgba(255, 255, 255, 0))), -webkit-gradient(linear, left bottom, left top, color-stop(0, rgba(255, 255, 255, 0)), color-stop(1, rgba(255, 255, 255, 0.35))), #74d04c;


background: -moz-linear-gradient(rgba(255, 255, 255, 0.25) 0%, rgba(255, 255, 255, 0) 100%), #74d04c;
-moz-box-shadow: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.4), inset 0px -1px 1px rgba(0, 0, 0, 0.2);
-webkit-box-shadow: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.4), inset 0px -1px 1px rgba(0, 0, 0, 0.2);
-o-box-shadow: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.4), inset 0px -1px 1px rgba(0, 0, 0, 0.2);
box-shadow: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.4), inset 0px -1px 1px rgba(0, 0, 0, 0.2);
 /* Give it a higher contrast outline */
 border: 1px solid #4c8932;

私はrgbを取得しません(したがって、#hex値に変換する方法を確認したいと思います)

リンクでも大丈夫です。

乾杯

4

2 に答える 2

3

あなたの例は透明性を利用しています。透明色を定義するための css3 仕様は rgba(r,g,b,a) を使用しています

HEX を使用するグラデーションには、別の構文があります。

rgba(255, 255, 255, 0.25) => #FFFFFF 25%

参照: http://gradients.glrzad.com/

また、「rgb を取得しない」というあなたの正当性を実際に検討する必要があります。RGB がデジタル カラーの非常に重要な概念であることを理解するのに時間がかかるかもしれません。

于 2012-04-16T00:11:16.990 に答える
1

通常の 16 進数表現は、赤、緑、青の値をそれぞれ 1 バイトずつ 16 進数 (基数 16) に変換したものです。あなた255,255,255は になりffffff、0,0,0 は になります000000。表示されていませんが、表記は rrggbb のように 2 桁ずつ使用されるため、(たとえば) rgb = 1,2,3 は 010203 に変換されます。

編集: コマンド ライン ツールに慣れている場合 (および C または C++ コンパイラにアクセスできる場合) は、次のような方法で変換を行う方が簡単であることに気付くかもしれません。

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv) {
    if (argc != 4) {
        fprintf(stderr, "Usage: cvt_hex r g b");
        return EXIT_FAILURE;
    }

    int r = atoi(argv[1]);
    int g = atoi(argv[2]);
    int b = atoi(argv[3]);

    printf("%2.2x%2.2x%2.2x", r, g, b);
    return 0;
}

ただ注意してください: これはエラー チェックの方法をあまり試みません。そのため、(たとえば) 255 より大きい値を指定した場合、問題を検出したり警告したりせず、勝った結果を生成するだけです。正しく動作しません。

于 2012-04-16T00:11:09.387 に答える