2011-04-25 5 views
1

LESSスコープを回避する方法はありますか?それは迷惑になってきています。 {マージントップ:10pxの}の.textボックス:基本的に、私は、マージントップを追加するために一回の変化がありますサブセクションで、そして等背景、境界を画定するの.textボックスを有しています。今では、そのセクション内で.text-boxを使用することはできず、元のボックススタイルを得ることができません。代わりに、私が得るのはマージントップです。階層構造の定義をどのように高くすることができますか?私はそれ機能させる、との両方の場所でその関数を呼び出すことができたと、私はLESSを使っているということで、私はあまりとKISSをしたいです。 PHPでは、/ prefixを使ってグローバルな名前空間に行き、:: prefixを使ってC++でグローバルな名前空間に行きます。LESS問題(範囲および明示的なノード名)

さらに、それはプロトタイピングのためのノード名の仕事を持つ任意の定義のように見えるしていません。つまり、ul.productsを宣言することはできません。ul.categories {ul.products}を使用してください。ノード名を再利用するためにノード名を省略する必要があります。意味:.categories {.products}。これは見落とし/不可能なのでしょうか?

おかげ

+0

LESSの問題は、より多くの問題よりも優れています! MORE回答。 – coreyward

+3

コメント無し。 :P –

答えて

2

OKそれでは、たとえば、あなたはあなたのミックスインが定義されて持っているとしましょう:

.text-box { 
    background: #eee; 
    border: 1px solid #ccc; 
    color: #333; 
    margin-top: 5px; 
} 

は今、あなたは、単にこれを行う、その後、プロパティを追加したり、いくつかのサブセクションでそれを変更したい:

div.content { 
    div.sub_section { 
     .text-box; 
     margin-top: 10px; // this will override 5px defined in the mixin. 
    } 
} 

...あなたのmixinを配置していて、追加する必要のあるプロパティを追加しています(これはmixin自体のプロパティをオーバーライドしますが、オーバーライドするプロパティがdミックスインが呼ばれた後に完成しました。

出力CSSファイルに2つの宣言があるので、理想的な解決策ではありません(.sub_sectionで定義したものがmixinに続きます)。そうでなければ、この問題の解決方法はわかりませんパラメトリックミックスインを定義するよりも...

-

あなたの第二の問題 - 私は小さいが意図的に適用範囲が限定された定義をサポートしていないことを...あなたは本当に特定のミックスインが可能であることを知る必要がある場合だと思います特定のタグが使用する、私はそうのようにそれに対処します:

.ul_products { ... } 
.ul_categories { .ul_products; ... } 

ul.categories { .ul_categories; } 

あなたもバンドルを定義し、そこから何かを呼び出すことができます。

​​

私はそれが正しいだ願っていますか..?

関連する問題