Rumah >hujung hadapan web >tutorial js >Cara Membina Preprocessor CSS Anda Sendiri Dengan PostCSS
mata utama
<code class="language-bash">npm install gulp-postcss postcss-mixins postcss-simple-vars postcss-nested autoprefixer-core --save-dev</code>kemudian buat pelbagai fungsi pemprosesan CSS dalam gulpfile.js, contohnya:
<code class="language-javascript">var gulp = require('gulp'), postcss = require('gulp-postcss'), processors = [ require('postcss-mixins'), require('postcss-simple-vars'), require('postcss-nested'), require('autoprefixer-core')({ browsers: ['last 2 versions', '> 2%'] }) ];</code>dan tulis tugas pemprosesan CSS, contohnya:
<code class="language-javascript">// 编译CSS gulp.task('css', function() { return gulp.src('source/css/styles.css') .pipe(postcss(processors)) .pipe(gulp.dest('dest/styles/')); });</code>Anda juga boleh menggunakan API POSTCSS untuk membuat fungsi pemprosesan anda sendiri. Sebagai contoh, kita boleh memohon sentuhan sans-serif untuk semua pengisytiharan font keluarga:
<code class="language-javascript">processors = [ require('postcss-mixins'), require('postcss-simple-vars'), require('postcss-nested'), function(css) { // sans-serif 后备 css.eachDecl('font-family', function(decl) { decl.value = decl.value + ', sans-serif'; }); }, require('autoprefixer-core')({ browsers: ['last 2 versions', '> 2%'] }) ];</code>Jika fail /source/css/styles.css mengandungi kod berikut:
<code class="language-css">$colorfore: #333; $colorback: #fff; @define-mixin reset { padding: 0; margin: 0; } main { font-family: Arial; @mixin reset; color: $colorfore; background-color: $colorback; article { color: $colorback; background-color: $colorfore; } }</code>Running Gulp CSS akan mencipta CSS ini di /dest/css/styles.css:
<code class="language-css">main { font-family: Arial, sans-serif; padding: 0; margin: 0; color: #333; background-color: #fff; } main article { color: #fff; background-color: #333; }</code>
Kelebihan
PostCSS membolehkan anda menyingkirkan sekatan dan pilihan yang dikenakan oleh penulis preprocessor. Kaedah ini memberikan beberapa faedah:Kekurangan
jadi semuanya baik -baik saja? Malangnya, postcss bukan penyelesaian yang sempurna:
Sekiranya anda berputus asa pada preprocessor anda?
Jika anda memulakan projek mandiri yang kecil dan mudah pada satu pasukan, pemproses PostCSS tersuai boleh menjadi pilihan yang menarik. Saya juga mengesyorkan postcss untuk sebarang real tugas postprocessing seperti awalan vendor, pertanyaan media pembungkusan ke dalam satu perisytiharan, mengurangkan persamaan calc (), menyokong aplikasi pelayar lama, menyokong pemilih CSS4, mengecut, dan lain -lain. Tidak ada manfaat dalam melakukan tugas -tugas ini sendiri. Walau bagaimanapun, SASS telah mencapai jisim kritikal. Tiada sintaks preprocessor yang sempurna, tetapi ia akan difahami oleh kebanyakan pemaju dalam pasukan anda. Sebarang perbezaan halus tidak mungkin memberi manfaat atau merayu kepada semua orang. Iaitu, PostCSS dan kerangka kerja kerja yang sama mempunyai potensi yang besar. Jika sistem pemalam CSS modular boleh meniru - atau juga bercampur -sintaks dan fungsi sass, kurang dan stylus yang kita mahu, kita akan mempunyai preprocessor yang boleh mengalahkan semua peralatan preprocessors yang lain. Anda boleh bertaruh bahawa seseorang sedang membangunkan projek ini sekarang ...
Adakah anda berjaya menggunakan PostCSS sebagai preprocessor untuk projek anda? Adakah ia menarik anda dari sass? Adakah anda akan berhijrah dari kurang? Adakah anda akan berputus asa di Stylus?Soalan Lazim Mengenai Postcss
Apakah perbezaan utama antara POSTCSS dan preprocessors CSS yang lain?
Bagaimana cara memasang dan menggunakan postcss?
. Untuk menggunakan PostCSS, anda perlu memasang plugin yang ingin anda gunakan dan kemudian buat fail konfigurasi yang menentukan plugin yang anda mahu gunakan. Kemudian, anda boleh menjalankan postcss pada fail CSS anda menggunakan arahan npm install -g postcss-cli
. postcss input.css -o output.css
Bolehkah saya menggunakan postcss dengan preprocessors CSS yang lain?
PostCSS menyediakan banyak faedah. Ia sangat disesuaikan, membolehkan anda memilih hanya plugin yang anda mahukan. Ini boleh membawa kepada proses membina yang lebih kecil dan lebih cepat. PostCSS juga membolehkan anda menggunakan ciri CSS masa depan hari ini, dan secara automatik menambah awalan vendor ke CSS anda, menjimatkan masa anda dan memastikan gaya anda berfungsi dengan baik dalam penyemak imbas yang berbeza.
Walaupun PostCSS adalah kuat dan fleksibel, lengkung pembelajarannya mungkin lebih curam daripada preprocessors CSS yang lain. Kerana ia bergantung pada plugin, anda perlu meluangkan masa untuk meneliti dan memilih plugin yang tepat untuk projek anda. Juga, kerana ia adalah alat yang lebih baru, ia mungkin tidak disokong secara meluas atau diterima pakai sebagai preprocessors lain.
Postcss mengendalikan Mixin melalui plugin PostCSS-Mixins. Plugin ini membolehkan anda menentukan dan menggunakan mixin dalam CSS, sama seperti apa yang anda lakukan dalam sass atau kurang. Anda boleh menentukan mixin dalam fail konfigurasi PostCSS dan menggunakannya dalam CSS anda menggunakan kata kunci @mixin
.
Ya, anda boleh mengintegrasikan postcss ke dalam projek anda yang sedia ada. Anda hanya perlu memasang POSTCSS dan plugin yang anda mahu gunakan, dan kemudian sediakan fail konfigurasi POSTCSS. Anda kemudian boleh menjalankan PostCSS pada fail CSS yang sedia ada.
AutoPrefixer dan CSSNext sebenarnya plugin PostCSS. Ini bermakna mereka adalah alat yang berjalan di atas postcss, memanfaatkan seni bina pemalamnya. AutoPrefixer menambah awalan vendor ke CSS anda, sementara CSSNext membolehkan anda menggunakan ciri CSS masa depan hari ini.
Ya, PostCSS sesuai untuk projek -projek saiz apa pun. Kerana ia boleh disesuaikan, anda boleh memilih hanya plugin yang anda mahu, membolehkan proses membina yang lebih kecil dan lebih cepat. Ini menjadikannya pilihan yang baik untuk projek besar di mana prestasi adalah masalah.
Atas ialah kandungan terperinci Cara Membina Preprocessor CSS Anda Sendiri Dengan PostCSS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!