2016-08-29 3 views
1

私は何か明白でないものを紛失しているかどうかわかりませんが、誰かがこれを私に説明できますか?次のスニペットは、Chrome DevTools Consoleで行ったものです。 Firefoxと同じ結果になります。element.style.background経由で設定すると、ブラウザは自動的に16進またはhslの色をrgbに評価しますか?

> let container = document.createElement("div") 
> undefined 
> container.style.background = "#bbb" 
> "#bbb" 
> container 
> <div style=​"background:​ rgb(187, 187, 187)​;​">​</div>​ 
> container.style.background = "hsl(120, 50%, 50%)" 
> "hsl(120, 50%, 50%)" 
> container 
> <div style=​"background:​ rgb(63, 191, 63)​;​">​</div>​ 

ここにはわかりやすくするための図があります。

これは標準的な動作ですか?もしそうなら、実際のHEXまたはHSL値をインラインスタイルにするにはどうすればよいですか? spec 1として

enter image description here

+0

これがブラウザの機能です。なぜあなたは16進数でそれを必要としますか? – epascarello

+0

私はそれを私がそれを設定したのと同じ形式で後で問い合わせることができます。既存の動作では、私はそれを元に戻すか、別のデータ属性を維持する必要があります –

+0

または、CSSクラスを使用し、それについて心配しないでください。それがXYZ色を持っているかどうかを知る必要がある場合よりも、代わりにXYZクラスを探すことを知っているでしょう。 – epascarello

答えて

1

値が半透明である場合、計算値はrgba()対応するであろう。そうでない場合は、対応するrgb()になります。 rgbまたはrgbaのいずれかで、あなたの入力が何であるかに関係なく、計算値が常に結果という意味

だから、あなたの質問に答える:それはバックRGBAに計算されるようにはいを、それが標準的な動作となしは、あなたが進またはHSLを使用することはできません。

+0

クール!それを指摘してくれてありがとうございます計算値のスペックを見ていたはずですが面白いのは、白いなど –

+0

私はこの行を今どこにでも見ていますが、実際のW3C仕様では見つけられないようです。私はちょうどGoogleの行をgoogleすると、MDNの色関連の記事がポップアップします。実際の仕様(リンクされた仕様や計算された値の仕様でさえ)でそれを見つけるように思えます...あなたは私にその方向を教えてくれますか? – Tarulia

関連する問題