Saya sedang mengerjakan file CSS yang cukup panjang. Saya tahu bahwa klien dapat meminta perubahan pada skema warna, dan bertanya-tanya: apakah mungkin untuk menetapkan warna ke variabel, sehingga saya bisa mengubah variabel agar warna baru diterapkan ke semua elemen yang menggunakannya?
Harap dicatat bahwa saya tidak dapat menggunakan PHP untuk secara dinamis mengubah file CSS.
css
variables
colors
css-variables
patrick
sumber
sumber
Jawaban:
CSS mendukung ini secara asli dengan Variabel CSS .
Contoh file CSS
Untuk contoh yang berfungsi, silakan lihat JSFiddle ini (contoh menunjukkan salah satu penyeleksi CSS dalam biola memiliki warna kode keras menjadi biru, pemilih CSS lainnya menggunakan variabel CSS, baik sintaksis asli dan saat ini, untuk mengatur warna ke biru) .
Memanipulasi variabel CSS di sisi JavaScript / klien
Dukungan ada di semua peramban modern
Firefox 31+ , Chrome 49+ , Safari 9.1+ , Microsoft Edge 15+ dan Opera 36+ dikirimkan dengan dukungan asli untuk variabel CSS.
sumber
Orang-orang terus memilih jawaban saya, tetapi ini adalah solusi yang mengerikan dibandingkan dengan kegembiraan sass atau kurang , terutama mengingat jumlah gui yang mudah digunakan untuk kedua hari ini. Jika Anda memiliki akal mengabaikan semua yang saya sarankan di bawah ini.
Anda bisa memberi komentar di css sebelum setiap warna untuk dijadikan semacam variabel, yang bisa Anda ubah nilainya menggunakan find / replace, jadi ...
Di bagian atas file css
Kemudian di file CSS
Kemudian untuk, misalnya, mengubah skema warna untuk teks kotak yang Anda temukan / ganti aktif
sumber
CSS itu sendiri tidak menggunakan variabel. Namun, Anda dapat menggunakan bahasa lain seperti SASS untuk menentukan gaya Anda menggunakan variabel, dan secara otomatis menghasilkan file CSS, yang kemudian dapat Anda pasang di web. Perhatikan bahwa Anda harus menjalankan ulang generator setiap kali Anda membuat perubahan pada CSS Anda, tetapi itu tidak terlalu sulit.
sumber
Anda dapat mencoba variabel CSS3 :
sumber
Tidak ada solusi mudah CSS saja. Anda bisa melakukan ini:
Temukan semua contoh
background-color
dancolor
dalam file CSS Anda dan buat nama kelas untuk setiap warna unik.Selanjutnya, telusuri setiap halaman di situs Anda di mana warna terlibat dan tambahkan kelas yang sesuai untuk warna dan warna latar belakang.
Terakhir, hapus referensi warna apa pun di CSS Anda selain dari kelas warna yang baru Anda buat.
sumber
Yeeeaaahhh .... sekarang Anda dapat menggunakan fungsi var ( ) di CSS .. ...
Berita baiknya adalah Anda dapat mengubahnya menggunakan akses JavaScript , yang akan berubah secara global juga ...
Tapi bagaimana cara mendeklarasikannya ...
Sederhana saja:
Misalnya, Anda ingin menetapkan a
#ff0000
kevar()
, cukup dengan menugaskannya:root
, perhatikan juga--
:Hal yang baik adalah dukungan browser tidak buruk, juga tidak perlu dikompilasi untuk digunakan di browser seperti
LESS
atauSASS
...Juga, berikut ini adalah skrip JavaScript sederhana, yang mengubah nilai merah menjadi biru:
sumber
Ruby Gem 'Kurang' untuk CSS terlihat mengagumkan.
http://lesscss.org/
sumber
Ya, dalam waktu dekat (saya menulis ini pada Juni 2012) Anda dapat mendefinisikan variabel css asli, tanpa menggunakan lebih sedikit / sass dll! Mesin Webkit baru saja menerapkan aturan variabel css pertama, sehingga versi Chrome dan Safari yang mutakhir sudah bekerja dengannya. Lihat log pengembangan Official Webkit (Chrome / Safari) dengan demo browser css di tempat.
Semoga kita dapat mengharapkan dukungan browser yang luas dari variabel css asli dalam beberapa bulan ke depan.
sumber
Jangan gunakan variabel css3 karena dukungan.
Saya akan melakukan yang berikut jika Anda ingin solusi css murni.
Gunakan kelas warna dengan nama semen .
Pisahkan struktur dari kulit (OOCSS)
Letakkan ini di dalam file css terpisah untuk mengubah sesuai kebutuhan.
sumber
Anda dapat melewati CSS melalui javascript dan mengganti semua instance COLOUR1 dengan warna tertentu (pada dasarnya regex) dan memberikan stylesheet cadangan jika pengguna akhir JS dimatikan
sumber
Saya tidak jelas mengapa Anda tidak bisa menggunakan PHP. Anda kemudian bisa menambahkan dan menggunakan variabel seperti yang Anda inginkan, menyimpan file sebagai file PHP dan menautkan ke file .php tersebut sebagai style sheet alih-alih file .css.
Tidak harus PHP, tetapi Anda mengerti maksud saya.
Ketika kita menginginkan hal-hal pemrograman, mengapa tidak menggunakan bahasa pemrograman sampai CSS (mungkin) mendukung hal-hal seperti variabel?
Juga, periksa CSS berorientasi Objek Nicole Sullivan .
sumber
dicejs.com (secara resmi cssobjs) adalah versi sisi klien dari SASS. Anda dapat mengatur variabel dalam CSS Anda (disimpan dalam json diformat CSS) dan menggunakan kembali variabel warna Anda.
Dan di sini ada tautan ke demo yang dapat diunduh lengkap yang sedikit lebih membantu daripada dokumentasinya: demo dicejs
sumber
Pertimbangkan untuk menggunakan SCSS. Ini penuh dengan sintaks CSS, jadi file CSS yang valid juga merupakan file SCSS yang valid. Ini membuat migrasi mudah, cukup ubah sufiks. Ini memiliki banyak peningkatan, variabel yang paling berguna dan penyeleksi bersarang.
Anda perlu menjalankannya melalui pra-prosesor untuk mengubahnya menjadi CSS sebelum mengirimkannya ke klien.
Saya telah menjadi pengembang CSS hardcore selama bertahun-tahun sekarang, tetapi karena memaksa diri saya untuk melakukan proyek di SCSS, saya sekarang tidak akan menggunakan yang lain.
sumber
Jika Anda memiliki Ruby di sistem Anda, Anda dapat melakukan ini:
http://unixgods.org/~tilo/Ruby/Using_Variables_in_CSS_Files_with_Ruby_on_Rails.html
Ini dibuat untuk Rails, tetapi lihat di bawah untuk cara memodifikasinya untuk menjalankannya sendiri.
Anda dapat menggunakan metode ini secara independen dari Rails, dengan menulis skrip wrapper Ruby kecil yang bekerja bersama dengan site_settings.rb dan memperhitungkan jalur-CSS Anda, dan yang dapat Anda hubungi setiap kali Anda ingin membuat ulang CSS Anda (mis. selama startup situs)
Anda dapat menjalankan Ruby di hampir semua sistem operasi, jadi ini seharusnya platform yang independen.
mis. wrapper: generate_CSS.rb (jalankan skrip ini kapan pun Anda perlu membuat CSS Anda)
metode generate_CSS_files di site_settings.rb perlu diubah seperti ini:
sumber
Anda dapat mengelompokkan pemilih:
sumber
Tentu bisa, semacam, berkat dunia indah dari berbagai kelas, dapat melakukan ini:
tapi akhirnya saya sering menggabungkan mereka seperti ini:
Saya tahu polisi semantik akan menguasai Anda, tetapi berhasil.
sumber
Bukan PHP Saya takut, tetapi Zope dan Plone menggunakan sesuatu yang mirip dengan SASS yang disebut DTML untuk mencapai ini. Ini sangat berguna dalam CMS.
Upfront Systems memiliki contoh penggunaannya yang baik di Plone.
sumber
Jika Anda menulis file css sebagai templat xsl, Anda bisa membaca nilai warna dari file xml sederhana. Kemudian buat css dengan prosesor xslt.
colors.xml:
styles.xsl:
Perintah untuk membuat css:
xsltproc -o styles.css styles.xsl colors.xml
styles.css:
sumber
Itu tidak mungkin dengan CSS saja.
Anda dapat melakukannya dengan JavaScript dan KURANG menggunakan less.js , yang akan membuat variabel KURANG menjadi CSS hidup, tetapi itu hanya untuk pengembangan dan menambahkan terlalu banyak overhead untuk penggunaan kehidupan nyata.
Yang paling dekat dengan CSS Anda adalah dengan menggunakan pemilih substring atribut seperti ini:
dan atur
id
semua elemen Anda yang ingin Anda sesuaikan dengan nama yang dimulai dengancolvar-
, seperticolvar-header
. Kemudian ketika Anda mengubah warna, semua gaya ID diperbarui. Itu sedekat yang Anda bisa dapatkan dengan CSS saja.sumber