Rumah >hujung hadapan web >tutorial css >Bagaimanakah Saya Boleh Melaksanakan Kemasukan CSS Bersyarat dalam Rails 3.1 Menggunakan Sprockets?

Bagaimanakah Saya Boleh Melaksanakan Kemasukan CSS Bersyarat dalam Rails 3.1 Menggunakan Sprockets?

Barbara Streisand
Barbara Streisandasal
2024-11-27 06:32:10926semak imbas

How Can I Implement Conditional CSS Inclusion in Rails 3.1 Using Sprockets?

Kemasukan Aset Bersyarat dalam Rails 3.1 dengan Sprockets

Dalam usaha mengoptimumkan pemaparan CSS, ramai pembangun bergelut dengan cabaran untuk menyelektifkan CSS fail berdasarkan syarat tertentu. Isu ini menjadi penting apabila berurusan dengan reka letak responsif atau memastikan keserasian merentas penyemak imbas.

Dalam Rails 3.1, saluran paip aset menyediakan mekanisme yang berkuasa untuk mengurus aset statik. Secara lalai, arahan *= require_tree dalam application.css merangkumi semua fail dalam direktori aset/stylesheets. Walau bagaimanapun, pendekatan ini mungkin tidak mencukupi untuk memasukkan fail CSS secara bersyarat.

Penyelesaian Tradisional tetapi Kikuk

Satu penyelesaian adalah dengan menentukan secara manual setiap fail CSS, seperti yang digambarkan:

*= require_self
*= require home.css
...
*= require blueprint/screen.css

Walaupun kaedah ini berfungsi, kaedah ini menjadi kurang praktikal kerana bilangan fail CSS meningkat.

Memanfaatkan Manifes Berasingan dan Folder Tersusun

Penyelesaian yang lebih elegan melibatkan penyusunan semula folder aset/stylesheet dan menggunakan fail manifes yang berasingan:

app/assets/stylesheets
+-- all
    +-- your_base_stylesheet.css
+-- print
    +-- blueprint
        +-- print.css
    +-- your_print_stylesheet.css
+-- ie
    +-- blueprint
        + ie.css
    +-- your_ie_hacks.css
+-- application-all.css
+-- application-print.css
+-- application-ie.css

Setiap kategori mendapat fail manifesnya sendiri:

/* application-all.css */
*= require_self
*= require_tree ./all

/* application-print.css */
*= require_self
*= require_tree ./print

/* application-ie.css */
*= require_self
*= require_tree ./ie

Aplikasi fail susun atur dikemas kini dengan sewajarnya:

<%= stylesheet_link_tag "application-all", :media => "all" %>
<%= stylesheet_link_tag "application-print", :media => "print" %>

<!--[if lte IE 8]>
    <%= stylesheet_link_tag "application-ie", :media => "all" %>
<![endif]-->

Ingat untuk memasukkan fail manifes dalam config/environments/production.rb:

config.assets.precompile += %w( application-all.css application-print.css application-ie.css )

Rujukan Imej

Dengan struktur ini, berhati-hati diperlukan apabila berurusan dengan rujukan imej. Satu penyelesaian yang berpotensi adalah untuk memindahkan imej dengan sewajarnya, memastikan organisasi yang konsisten dengan fail CSS. Sebagai alternatif, seseorang boleh memilih untuk melayakkan laluan imej atau memanfaatkan pembantu SASS untuk URL imej.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Kemasukan CSS Bersyarat dalam Rails 3.1 Menggunakan Sprockets?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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