ホームページ > 記事 > ウェブフロントエンド > LESS で動的プロパティ名を実現して、ブラウザー間でベンダー プレフィックスを適用するにはどうすればよいですか?
LESS のような CSS プリプロセッサを使用すると、変数とロジックに基づいて CSS を動的に生成できます。一般的なタスクの 1 つは、CSS プロパティにクロスブラウザ ベンダー プレフィックスを適用する CSS ルールを作成することです。
LESS は現在、動的プロパティ名の直接サポートを提供していません。ただし、回避策を使用して同様の機能を実現できます。
1.6 より前の LESS バージョンでは、e() と @{ } を使用できます。プロパティ名を動的に挿入するには:
.vendor(@property, @value) { -webkit-#{e(@property)}: @value; -moz-#{e(@property)}: @value; -ms-#{e(@property)}: @value; -o-#{e(@property)}: @value; #{e(@property)}: @value; } /*example*/ .test { .vendor(transform, translateX(20px)); }
再帰を使用して次のクラスの名前にプロパティを挿入することもできます:
.vendors(@property, @value, @rest:"") { @inject:~"@{rest} -webkit-@{property}: @{value}; -moz-@{property}: @{value}; -ms-@{property}: @{value}; -o-@{property}: @{value}; @{property}: @{value};"; } .test(@nextclass){ .vendors(transform, "matrix(2,0,0,2,20,20)"); .vendors(transform-origin,"10px 10px", @inject); (~"{@{inject}} .@{nextclass}") {/*next class properties*/}; } .this-class{ .test(next-class); }
LESS バージョン 1.6 では、プロパティ名の補間が直接実装されています:
.vendor(@property, @value){ -webkit-@{property}: @value; -moz-@{property}: @value; -ms-@{property}: @value; -o-@{property}: @value; @{property}: @value; } /*example*/ .test { .vendor(transform, translateX(20px)); }
以上がLESS で動的プロパティ名を実現して、ブラウザー間でベンダー プレフィックスを適用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。