JavaScriptを使用せずに、純粋なCSSでランダムな色を生成することは可能ですか?おそらく不可能ですが、私はまだ興味があります。
私はあなたのために何かを見つけました こちら ですが、PHPを使用しています。単純なCSSでは不可能だと思います。
これは純粋なCSSでは実際には不可能です。
ただし、SASS( example )やLESS( example )などのプリプロセッサを使用すると、スクリプト言語を使用して構築されるため、ランダムな色を生成できます。
将来の読者に役立つかもしれないサイドノートは、 CSS変数 を使用する可能性です。次のようにしてCSS変数を宣言できます
element {
--main-bg-color: brown;
}
そして次のように使用します:
element {
background-color: var(--main-bg-color);
}
これで、JSを使用して変更できます。
// From http://stackoverflow.com/a/5365036/2065702
var randomColor = "#"+((1<<24)*Math.random()|0).toString(16);
document.documentElement.style.setProperty('main-bg-color', randomColor);
または、ランダムな色を選択するまったく異なる方法を使用することもできます(ユーザー入力など)。これにより、テーマのような可能性が可能になります。考慮しなければならないことの1つは、 ブラウザーサポート です。これは今のところあまり良くないからです。
<body style='background-color:<?php printf( "#%06X\n", mt_Rand( 0, 0x222222 )); ?>'>
PHPを使用する
あんまり。ダイナミズムは、スクリプトのサポートによってのみ実装できます。
このサイトによると、 http://blog.codepen.io/2013/08/26/random-function-in-sass/ 可能ですが、純粋なCSSではありません
完全にランダムではなく、CSSを使用:
ステップ1-照会された背景を選択し、順番に並べ、頻度を調整します
@keyframes bgrandom {
0% { background: linear-gradient(90deg, rgba(255,255,255,0.98) 50%, rgba(255,255,255,0.96) 0%); }
50% { background: linear-gradient(90deg, rgba(255,255,255,0.98) 50%, rgba(255,255,255,0.96) 0%); }
55% { background: linear-gradient(90deg, rgba(255,255,255,0.96) 50%, rgba(255,255,255,0.98) 0%); }
80% { background: linear-gradient(90deg, rgba(255,255,255,0.96) 50%, rgba(255,255,255,0.98) 0%); }
85% { background: linear-gradient(90deg, rgba(255,255,255,0.96) 50%, rgba(255,255,255,0.94) 0%); }
100% { background: linear-gradient(90deg, rgba(255,255,255,0.96) 50%, rgba(255,255,255,0.94) 0%); }
}
ステップ2-アニメーションを起動します(長さanimationName repeatMode)
#element{ animation: 1.2s bgrandom infinite; }
使いやすく、カスタマイズが可能で、うまく機能します。同様の手法は、スライダー、スピナーなどに使用できます。