2012-05-04 6 views
0

現在、私はLESS CSSを使っていて、省略したパラメータのデフォルトCSS動作を模倣したミックスインを作成しようとしています。パラメトリックBのデフォルトとしてパラメトリックAのCSSミックスインがありません

CSSにあなたがしばしばすなわち

margin: 5px 5px 10px; 

宣言し、それが

margin: 5px 5px 10px 5px; 

として読んだ私は、私はそれが撮りたいボーダー半径ミックスイン

.border-radius (@topright: 5px, @bottomright: @topright, @bottomleft: @topright, @topleft: @bottomright) {} 

で同じことを試してみました1つのパラメータでのみ呼び出された場合は、最初のものがallのデフォルトです。私はそれを2つのパラメータで呼び出すと、最初のものを3番目のものとして、2番目のものを4番目のもののデフォルトとして取ります。

LESSだけでこの動作を達成する方法はありますか?

答えて

4

これを行うための正しい方法は、次に使用すると、1つのパラメータでそれを呼び出すことができるただ一つのパラメータ

.border-radius(@px) { 
    -webkit-border-radius: @px; 
    -moz-border-radius: @px; 
    border-radius: @px; 
} 

を受け取ることになります:

.border-radius(5px); 

または多く持ちます。これは、変数に入れて、またはそれらをエスケープするか、あなたを必要とします。

@myradius: 5px 5px 10px; 
.border-radius(@myradius); 

または

.border-radius(~"5px 5px 10px"); 

私はBootstrap projectを簡潔にするために後者のバージョンを使用することread

+0

私は、あなたが提供したリンクの中でBootstrapのようにエスケープするつもりだと思います。記事は良い読書でした。リンクと答えをありがとう! – KADlancer

+0

upvotedと受け入れ - まさに私が探していた! – KADlancer

関連する問題