2013-02-20 23 views
12

CSSで配列からランダムなフォント色を選択する方法はありますか?私はサーバーサイドまたはJavaScriptでこれを行うことができることを知っていますが、これを行うには純粋なCSSの方法があるのだろうかと思っています。CSSは配列からランダムな色を選択します

+2

あなただけのCSS JavaScriptでそれを行うことはできませんが。あなたはJavascriptの答えで大丈夫ですか? – dezman

+6

できません。まず、CSSに 'array'というものはありません。 –

答えて

21

これはCSSでは不可能です。これはしっかりと決定的です。あなたはしかし、クライアント側のJavaScriptでこれを行うことができます:

var colors = ['#ff0000', '#00ff00', '#0000ff']; 
var random_color = colors[Math.floor(Math.random() * colors.length)]; 
document.getElementById('title').style.color = random_color; 

あなたはjQueryのを使用している場合は、最後の行は、jQueryを使ってJavaScriptでシンプル

$('#title').css('color', random_color); 
+0

ありがとうございます。しかし、私は純粋なCSSの方法を探していました。純粋にCSSでは不可能なようです。 –

+0

あなたは、[explosion pills](http://stackoverflow.com/a/14984994/766570)の答えを正しいものにする必要があります。間違った答え(あなた自身の入場による)がより多くの票を得るのは意味がありません正しいものよりも – abbood

+0

@abbood Explosion Pillsの答えは興味深いですが、「IE7以下でしかサポートされていません」これはOPの問題を解決する現実的な方法ではありません。 – bdesham

2

になる可能性があります。たびに新しい色にページの更新を選択することになる

var hexArray = ['#hexVal','#hexVal','#hexval', '#hexval'] 
var randomColor = hexArray[Math.floor(Math.random() * hexArray.length)]; 

$("#divId").css("color",randomColor); //A class selector would work too 

あなたのような何かを行うことができます。

31

CSS式(CSSを使った動的スクリプトコンテンツを許可)は、IE7以降でのみサポートされているWebフォームと並んで、効率の悪いところにキャストされました。しかし、あなたが尋ねたので。

<style> 
blink marquee { 
    color: expression("rgb(" + Math.floor(Math.random() * 255) 
     + "," + Math.floor(Math.random() * 255) + "," 
     + Math.floor(Math.random() * 255) + ")"); 
} 
</style> 
<blink> 
    <marquee> 
     color me beautiful 
    </marquee> 
</blink> 
+16

あなたはモンスターです! – bdesham

+0

大丈夫ですか、この質問に対する人々の投票は完全にランダムですか?これは正解です – abbood

+1

@abboodこれはIE7以下でのみ動作する場合、正解はどうですか? – emzero

1

これが私のやり方です。

最初の部分が順番で、要素1を使用すると、色の外にあるとき、それはそれをランダム化します色1など

を取得します。

//Specify the class that you want to select 
var x = document.getElementsByClassName("ms-webpart-chrome-title"); 
var i; 
var c; 

//specify the colors you want to use 
var colors = ["#009933", "#006699", "#33cccc", "#99cc00", "#f60"]; 
var d = colors.length; 

for (i = 0; i < x.length; i++){ 
    while (i < d) { 
     c = i; 
     var random_color = colors[c]; 
     x[i].style.borderTopColor = random_color; 
     i++; 
    } 
    while (i >= d) { 
     var random_color = colors[Math.floor(Math.random() * colors.length)]; 
     x[i].style.borderTopColor = random_color; 
     i++; 
    } 
} 
0

定義済みのカラーセットを使用することなく、均一にランダム化された色の機能を得るために

function randomColor(){ 
    rc = "#"; 
    for(i=0;i<6;i++){ 
     rc += Math.floor(Math.random()*16).toString(16); 
    } 
    return rc; 
} 

またはインライン

"#"+Math.floor(Math.random() * 0x1000000).toString(16) 
関連する問題