Menggunakan Lapisan Lata CSS dalam Projek Web

WBOY
Lepaskan: 2024-07-19 17:55:00
asal
261 orang telah melayarinya

Menggunakan Lapisan Lata CSS dalam Projek Web

Nama penuh CSS ialahCascading Style SheetsSalah satu konsep pentingnya ialah " Cascading Styles isytiharkan kemudian akan mengatasi gaya sebelumnya. Ciri ini menjadikannya sangat mudah untuk kami membuat beberapa penalaan halus sambil mewarisi gaya lama semasa membangunkan kandungan baharu.

Dengan kejuruteraan pembangunan bahagian hadapan, terutamanya penggunaan rangka kerja yang meluas seperti Vue.js, kami perlu mengurus lebih banyak fail gaya berpecah-belah dalam projek. Apabila fail gaya ini berkaitan antara satu sama lain, kita selalunya perlu membayar lebih banyak usaha untuk membuat susunan ia muncul dalam dokumen HTML memenuhi jangkaan kita.

Syukurlah, kami kini mempunyaiLapisan Lata CSS.

Dengan melata lapisan, kita boleh mengkategorikan kod CSS dengan sangat mudah, supaya gaya dalam lapisan sentiasasecara logikdisusun mengikut cara yang kita mahu, tanpa mempedulikan susunan ia muncul dalam dokumen HTML.

Lapisan Cascading CSS telah disahkan untukBaseline 2022, anda boleh menggunakan ciri ini dengan yakin.

amalan kejuruteraan yang ideal

Reka Bentuk Atomialah corak reka bentuk yang biasa digunakan dalam pembangunan web moden Kita boleh mengikuti reka bentuk ini dan membahagikan lapisan gaya kepada lima lapisan berikut:

  1. Atom
  2. Molekul
  3. Organisme
  4. Templat
  5. Halaman

Dalam projek sebenar, anda mungkin perlu menambah atau mengurangkannya, seperti menambah lapisan asas untuk menyeragamkan gaya awal (But Semula/Normalkan) dalam pelayar yang berbeza, jadi lapisan gaya dalam projek akhir mungkin kelihatan seperti ini:

/* 规范基础样式、定义CSS自定义属性等 */ @layer base { /* ... */ } /* 我们可以借助子层来排序这些可重用组件的样式 */ @layer components.atoms { /* ... */ } @layer components.molecules { /* ... */ } @layer components.organisms { /* ... */ } /* 模板可以被归类到布局中 */ @layer layouts { /* ... */ } @layer pages { /* ... */ }
Salin selepas log masuk

Selagi kami memastikan bahawa lapisan ditakrifkan dalam susunan ini pada permulaan dokumen HTML, kami boleh terus meletakkan kod gaya dalam lapisan dalam pembangunan seterusnya tanpa perlu risau tentang susunan ia diimport.

  Document     
Salin selepas log masuk

Digunakan bersama TailwindCSS

Pada masa ini, kebanyakan perpustakaan komponen digabungkan dengan TailwindCSS melaraskan gaya komponen melalui kelas alat kawalan JS Artikel ini tidak akan membincangkan kaedah ini. TailwindCSS boleh digabungkan dengan mana-mana pustaka komponen dengan bantuan lapisan melata, membolehkan kami menggunakan tailwind untuk memperhalusi gaya pustaka komponen.

TailWindCSS sudah mempunyai konsep lapisan Dalam versi sebelum versi 4, lapisan simulasi masih digunakan, bukan lapisan lata sebenar Untuk menjadikan gaya TailwindCSS muncul dalam kedudukan yang sesuai dalam projek kami, kami perlu menulis semula. Import fail:

/* * "base"这个层名会被TailwindCSS当作它的逻辑层处理, * 此处我们使用"tailwind-base"代替 */ @layer tailwind-base { @tailwind base; } /* * "utilities"和"variants"同理, * 但我们无需定义两个层来包裹它们,因为它们始终应该定义在我们的样式之后 */ @layer tailwind-utilities { @tailwind utilities; @tailwind variants; }
Salin selepas log masuk

Kemudian, mari laraskan definisi lapisan lata:

/* * 注意!我在此处删除了前文中的base层, * tailwind的base已经包含了样式的规范化内容, * 我们的工程通常不需要再次格式化 */ @layer tailwind-base, components.atoms, components.molecules, components.organisms, layouts, pages, tailwind-utilities;
Salin selepas log masuk

Gunakan dengan perpustakaan komponen

Pustaka komponen ialah bahagian penting dalam projek bahagian hadapan Berdasarkan perkara di atas, kita boleh dengan mudah berfikir bahawa gaya komponen harus berada di antara lapisan "asas" (atau lapisan "tailwind-base") dan ". susun atur". Iaitu, dalam lapisan "komponen". Mengenai di mana ia sepatutnya berada dalam komponen, anda perlu membuat keputusan berdasarkan situasi sebenar Kita boleh menggunakan ciri-ciri sub-lapisan untuk menyusun

Walau bagaimanapun, sebahagian besar pustaka komponen tidak menggunakan lapisan bertingkat Mengimport gaya pustaka komponen secara langsung akan menjadikan ia muncul di luar semua lapisan Di bawah peraturan lapisan bertingkat, gaya mereka akan menjadi keutamaan tertinggi dan kami tidak boleh menggunakannya .

Untuk menyelesaikan masalah ini, saya membangunkan pemalam postcss yang mampu menambah lapisan berlata ke gaya yang diimport melalui konfigurasi.

Seterusnya, ambil projek Vite sebagai contoh untuk menerangkan secara ringkas cara menggunakan perpustakaan komponen tambah elemen dalam projek.

Kandungan memulakan projek dan memasang TailwindCSS dan Element Plus ditinggalkan di sini Tidak kira sama ada anda menggunakan import automatik untuk memperkenalkan Element Plus, anda boleh mengikuti langkah dalam artikel ini.

Mula-mula, pasang @web-baseline/postcss-wrap-up-layer, anda boleh memilih pengurus pakej pilihan anda:

yarn add -D @web-baseline/postcss-wrap-up-layer
Salin selepas log masuk

Kemudian, gunakan pemalam ini dalam fail vite.config.ts:

/* 这里省略了其他无关的配置内容 */ import WrapUpLayer from '@web-baseline/postcss-wrap-up-layer'; export default defineConfig({ css: { postcss: { plugins: [ WrapUpLayer({ rules: [ { /* 此处使用了正则进行匹配 */ includes: /^node_modules\/element-plus\//, layerName: 'components.element-plus', }, ], }), ], }, }, })
Salin selepas log masuk

Itu sahaja, pemalam ini akan menambahkan lapisan tetapan bertingkat pada semua fail yang dipadankan Jika anda menggunakan pustaka komponen lain, anda boleh membuat tetapan yang serupa.

Pengendalian lapisan melata CSS yang lebih mudah dalam Vue SFC (Komponen Fail Tunggal)

Dalam komponen fail tunggal Vue, kita boleh menggunakanuntuk menentukan gaya, di mana kita boleh terus membalut gaya dalam lapisan berlatarkan, seperti ini:

 
Salin selepas log masuk

Ini menyusahkan dan tidak cantik. Biasanya, kami tidak memberi perhatian pada lapisan mana gaya itu berada, dan kami tidak mahu melihat lekukan yang sentiasa ada ini. Oleh itu, saya juga membangunkan pemalam vite yang membolehkan anda menggunakan lapisan berlata dalam bentuk atribut (seperti:

Pasang @web-baseline/vite-plugin-vue-style-layer:

yarn add -D @web-baseline/vite-plugin-vue-style-layer
Salin selepas log masuk

Gunakan pemalam ini dalam fail vite.config.ts:

/* 这里省略了其他无关的配置内容 */ import Vue from '@vitejs/plugin-vue'; import VueStyleLayer from '@web-baseline/vite-plugin-vue-style-layer'; export default defineConfig({ plugins: [ Vue(), VueStyleLayer(), ], })
Salin selepas log masuk

Dengan cara ini, komponen di atas boleh ditulis semula seperti berikut:

 
Salin selepas log masuk

我认为,这或许可以成为Vue SFC官方支持的功能,甚至是新的Web特性,将layer作为

这个Vite插件目前已经满足了使用的需要,但我知道它还有些许不足之处,我正在考虑将其使用unplugin重构,以支持更多的框架,而不仅仅是Vite+Vue。

在Nuxt中使用级联层

我通常使用Nuxt进行Web开发,而以上的功能在Nuxt中配置需要分散在各处,因此我将它们合并为一个模块以集中配置。由于Nuxt并不公开HTML文档的编辑,我在模块中添加了级联层排序字段。

安装@web-baseline/nuxt-css-layer:

yarn add -D @web-baseline/nuxt-css-layer
Salin selepas log masuk

在nuxt.config.ts文件中使用这个模块:

/* 这里省略了其他无关的配置内容 */ export default defineNuxtConfig({ modules: [ '@web-baseline/nuxt-css-layer', '@nuxtjs/tailwindcss', '@element-plus/nuxt', ], cssLayer: { rules: [ { includes: /^node_modules\/element-plus\//, layerName: 'components.element-plus', }, ], cssLayerOrder: [ 'tailwind-base', 'components.element-plus', 'components.atoms', 'components.molecules', 'components.organisms', 'layouts', 'pages', 'tailwind-utilities', ], }, });
Salin selepas log masuk

结语

在CSS级联层的帮助下,我们可以方便的在大型项目中管理样式文件,同时也允许我们将TailwindCSS与那些传统的组件库结合使用。

感谢您的阅读,如果您觉得我的工作对您有所帮助,欢迎为我的仓库添加Star!

  • @web-baseline/postcss-wrap-up-layer
  • @web-baseline/vite-plugin-vue-style-layer
  • @web-baseline/nuxt-css-layer

如果您在使用的过程中发现任何问题,欢迎提出issue以及提出pr!

Atas ialah kandungan terperinci Menggunakan Lapisan Lata CSS dalam Projek Web. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!