10

私はこのSASS mixinを持っています:

@mixin micro-clearfix
    &:after,
    &:before
        content: ""
        display: table
    &:after
        clear: both
    * html &
        height: 1% !default
    *+html &
        min-height: 1% !default

残念ながら、!defaultこの mixin を使用するポイントとなるものを削除しない限り、コンパイルされません。

私が得ているエラーメッセージは次のとおりです。

Invalid CSS after "1% ": expected expression (e.g. 1px, bold), was "!default")

私が達成したいのは、セレクターに対してheight(またはmin-height) が既に定義されている場合、ミックスインはその値を使用する必要があることです。それ以外の場合は、このプロパティを 1% として定義する必要があります。

zoomこれは有効なプロパティではなく、CSS をきれいに保ちたいので使用したくありません。

!defaultは間違った方法を使用していますか?

私は Compass 0.12.1 と SASS 3.1.10 を持っています。

4

2 に答える 2

14

!default変数を宣言する場合にのみ使用することを意図しています: http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#variable_defaults_

あなたがやろうとしていることは、CSS!important宣言で行う必要があります。これは、ミックスイン(優先したいもの)の外側のルールで使用する必要があります。とにかく、!important通常使用するのは良い習慣ではありません。カスケードまたは特異性に頼ることができるかもしれません。

于 2012-04-27T20:36:55.117 に答える
8

これが私が最終的にそれを行った方法です:

@mixin micro-clearfix
    $minHeight: 1% !default
    &:after,
    &:before
        content: ""
        display: table
    &:after
        clear: both
    * html &
        height: $minHeight
    *+html &
        min-height: $minHeight
于 2012-04-27T21:33:12.490 に答える