Rumah > hujung hadapan web > tutorial css > Bagaimanakah saya boleh mencapai nama sifat dinamik dalam LESS untuk menggunakan awalan vendor merentas penyemak imbas?

Bagaimanakah saya boleh mencapai nama sifat dinamik dalam LESS untuk menggunakan awalan vendor merentas penyemak imbas?

Mary-Kate Olsen
Lepaskan: 2024-11-07 13:18:03
asal
542 orang telah melayarinya

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

Pembolehubah dalam Nama Harta dalam LESS

pra-pemproses CSS seperti LESS membolehkan anda menjana CSS secara dinamik berdasarkan pembolehubah dan logik. Satu tugas biasa ialah membuat peraturan CSS yang menggunakan awalan vendor merentas penyemak imbas pada sifat CSS.

Kurang Nama Harta Dinamik

LESS pada masa ini tidak menawarkan sokongan langsung untuk nama sifat dinamik. Walau bagaimanapun, anda boleh menggunakan penyelesaian untuk mencapai kefungsian yang serupa.

Penyelesaian 1: Menggunakan e() dan @{ }

Dalam versi KURANG di bawah 1.6, anda boleh menggunakan e() dan @{ } untuk menyuntik nama sifat secara dinamik:

.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));
}
Salin selepas log masuk

Penyelesaian 2: Menyuntik Sifat ke dalam Kelas Seterusnya

Anda juga boleh menyuntik sifat ke dalam nama kelas seterusnya menggunakan rekursi:

.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);
}
Salin selepas log masuk

Interpolasi Nama Harta dalam KURANG 1.6

Setakat versi LESS 1.6, interpolasi nama harta tanah dilaksanakan secara langsung:

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

/*example*/
.test {
    .vendor(transform, translateX(20px));
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah saya boleh mencapai nama sifat dinamik dalam LESS untuk menggunakan awalan vendor merentas penyemak imbas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan