次のCSSがあります。
box-shadow: inset 0px 0px 2px #a00;
現在、その色を抽出してページの色を「スキップ可能」にしようとしています。これを行う方法はありますか?色を削除してから同じキーをもう一度使用すると、元のルールが上書きされます。
box-shadow-color
はないようです。少なくともGoogleは何も表示しません。
番号:
http://www.w3.org/TR/css3-background/#the-box-shadow
ChromeおよびFirefoxでこれを確認するには、計算されたスタイルのリストを確認します。 border-radius
などの短縮メソッドを持つ他のプロパティには、仕様で定義されたバリエーションがあります。
ほとんどの欠落している「ロングハンド」CSSプロパティと同様に、 CSS変数 はこの問題を解決できます。
#el {
--box-shadow-color: palegoldenrod;
box-shadow: 1px 2px 3px var(--box-shadow-color);
}
#el:hover {
--box-shadow-color: goldenrod;
}
実際…あります!並べ替え。 box-shadow
は、color
と同じように、デフォルトでborder
に設定されます。
http://dev.w3.org/.../#the-box-shadow による
色は影の色です。色がない場合、使用される色は「色」プロパティから取得されます。
実際には、color
プロパティを変更し、box-shadow
を色なしのままにする必要があります。
box-shadow: 1px 2px 3px;
color: #a00;
box-shadow
をまったくサポートしていません)div {
box-shadow: 0 0 50px;
transition: 0.3s color;
}
.green {
color: green;
}
.red {
color: red;
}
div:hover {
color: yellow;
}
/*demo style*/
body {
text-align: center;
}
div {
display: inline-block;
background: white;
height: 100px;
width: 100px;
margin: 30px;
border-radius: 50%;
}
<div class="green"></div>
<div class="red"></div>
以下のコメントで言及されているバグは、その後修正されました:)
CSSプリプロセッサを使用してスキニングを実行できます。 Sass を使用すると、次のようなことができます。
_theme1.scss:
$theme-primary-color: #a00;
$theme-secondary-color: #d00;
// etc.
_theme2.scss:
$theme-primary-color: #666;
$theme-secondary-color: #ccc;
// etc.
styles.scss:
// import whichever theme you want to use
@import 'theme2';
-webkit-box-shadow: inset 0px 0px 2px $theme-primary-color;
-moz-box-shadow: inset 0px 0px 2px $theme-primary-color;
サイト全体のテーマではなく、必要なクラスベースのテーマの場合は、次のようにします。 http://codepen.io/jjenzz/pen/EaAzo
CSS Variableでこれを行うことができます
.box-shadow {
--box-shadow-color: #000; /* Declaring the variable */
width: 30px;
height: 30px;
box-shadow: 1px 1px 25px var(--box-shadow-color); /* Calling the variable */
}
.box-shadow:hover {
--box-shadow-color: #ff0000; /* Changing the value of the variable */
}