Heim > Web-Frontend > CSS-Tutorial > Wie kann ich dynamische Eigenschaftsnamen in LESS erreichen, um browserübergreifende Herstellerpräfixe anzuwenden?

Wie kann ich dynamische Eigenschaftsnamen in LESS erreichen, um browserübergreifende Herstellerpräfixe anzuwenden?

Mary-Kate Olsen
Freigeben: 2024-11-07 13:18:03
Original
537 Leute haben es durchsucht

How can I achieve dynamic property names in LESS to apply cross-browser vendor prefixes?

Variablen in Eigenschaftsnamen in LESS

CSS-Präprozessoren wie LESS ermöglichen Ihnen die dynamische Generierung von CSS basierend auf Variablen und Logik. Eine häufige Aufgabe besteht darin, CSS-Regeln zu erstellen, die browserübergreifende Herstellerpräfixe auf CSS-Eigenschaften anwenden.

LESS Dynamic Property Names

LESS bietet derzeit keine direkte Unterstützung für dynamische Eigenschaftsnamen. Sie können jedoch Problemumgehungen verwenden, um eine ähnliche Funktionalität zu erreichen.

Problemumgehung 1: Verwendung von e() und @{ }

In LESS-Versionen unter 1.6 können Sie e() und @{ } verwenden. um Eigenschaftsnamen dynamisch einzufügen:

.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));
}
Nach dem Login kopieren

Problemumgehung 2: Eigenschaften in die nächste Klasse einfügen

Sie können Eigenschaften auch mithilfe der Rekursion in den Namen der nächsten Klasse einfügen:

.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);
}
Nach dem Login kopieren

Interpolation von Eigenschaftsnamen in LESS 1.6

Ab LESS Version 1.6 ist die Interpolation von Eigenschaftsnamen direkt implementiert:

.vendor(@property, @value){
    -webkit-@{property}: @value;
       -moz-@{property}: @value;
        -ms-@{property}: @value;
         -o-@{property}: @value;
            @{property}: @value;
}

/*example*/
.test {
    .vendor(transform, translateX(20px));
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich dynamische Eigenschaftsnamen in LESS erreichen, um browserübergreifende Herstellerpräfixe anzuwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage