2017-10-06 4 views
0

少ない機能を使用するとt r b lからt l b rに変換できますか?ここでless/scssでの文字列操作ですか?

.foo{ 
    border: fn(1px 2px 3px 4px) 
} 
+0

いいえ、このような組み込みの機能はありません。しかし、「カスタム関数」[plugin](http://lesscss.org/usage/#plugins-list-of-less-plugins)があります。 (そして、btw、上記のコードで "文字列"はどこにありますか?) –

+0

そして、btw、あなたはどの言語を書いていますか?おしゃべりですか?これらは同義語でもクローンでもありません(C++にも変数と関数がありますが、これを使ってCSSを処理することもできますが、ここに[cpp]タグを追加しませんか?)。異なる言語は、通常、異なる回答を想定しているため、具体的にしてください。 –

答えて

2

はミックスインを使用してソリューションです:

.border (@t, @l, @b, @r) { 
    border-top:@t; 
    border-left:@l; 
    border-bottom:@b; 
    border-right:@r; 
} 

.foo { 
    width:100px; 
    height:100px; 
    .border(2px, 1px, 3px, 4px); 
} 

これはにコンパイル:7相-MAXここで、@によって提案されているよう

.foo { 
    width: 100px; 
    height: 100px; 
    border-top: 2px; 
    border-left: 1px; 
    border-bottom: 3px; 
    border-right: 4px; 
} 

UPDATE

より効率的なソリューションです:

コンパイル
.border(@t, @l, @b, @r) { 
    border: @t @r @b @l; 
} 

.foo { 
    .border(1px, 2px, 3px, 4px); 
} 

.foo { 
    border: 1px 4px 3px 2px; 
} 
+0

編集され、改善されました。ありがとう。 – jfeferman

+0

私は、パラメータの順序を '@t @r @b @ l'に変更して、css境界と同じ順序を省略するようにしました。 –

+0

しかし、OPの質問は、正確には順序を逆転させる方法です。 – jfeferman