0

質問はほとんどタイトルにあります。

これが可能かどうかはわかりませんし、うまくいかないようですが、何かを見落としている可能性があります(私が望むもの)

これは私の色選択機能ミックスインthingieです

=colors($color)
  @if #{$color} == 0
    background: transparent
  @if #{$color} == 1
    background: #87dcec
  @if #{$color} == 2
    background: #72d856
  @if #{$color} == 3
    background: #f7e818
  @if #{$color} == 4
    background: #f75149
  @if #{$color} == 5
    background: #303030
  @if #{$color} == 6
    background: #fff1da
  @if #{$color} == 7
    background: #75430a
  @if #{$color} == 8
    background: #0e7259

そしてこれは私の@for

@for $i from 1 through 143
  li:nth-child(#{$i})
    float: left
    width: 50px
    height: 50px
    $color: #{attr(color)}
    +colors($color)

そのため、私のSASSは、最後のifの色のみを使用することにしました。これは、まだ8を使用していないため、奇妙なことです。

そして、はい、私はhtmlに呼ばれる属性を持っていますcolor

4

1 に答える 1

1

SASSはCSSの単なる拡張であるため、次のようにセレクターでのみHTML属性を使用できます。

.some[color] { color: $color; }  // $color is SCSS variable
.some[color=red] { color: red; }

(S)CSS内からhtml属性値を設定(または取得)することはできません。

しかし、あなたの場合、プレーンなCSSクラスのセットを使用することができます。

.class[color=0] { background: transparent; }
.class[color=1] { background: #87dcec; }

など、SASSスタイルに含めるだけです。


少ないですが、を使用すると、JavaScriptを介してDOM属性にアクセスできます。less.jsチュートリアルの「JavaScript評価」を参照してください。

@height: `document.body.clientHeight`;
于 2012-08-06T00:03:28.213 に答える