Saya yakin ini pasti telah disebutkan / ditanyakan sebelumnya tetapi telah mencari usia tanpa keberuntungan, terminologi saya pasti salah!
Samar-samar saya ingat tweet yang saya lihat beberapa waktu lalu yang menyarankan bahwa ada aturan css yang tersedia yang akan menghapus gaya apa pun yang sebelumnya ditetapkan dalam stylesheet untuk elemen tertentu.
Contoh penggunaan yang baik mungkin ada di situs RWD mobile-first di mana banyak gaya yang digunakan untuk elemen tertentu dalam tampilan layar kecil perlu 'diatur ulang' atau dilepas untuk elemen yang sama dalam tampilan desktop.
Aturan css yang dapat mencapai sesuatu seperti:
.element {
all: none;
}
Contoh penggunaan:
/* mobile first */
.element {
margin: 0 10;
transform: translate3d(0, 0, 0);
z-index: 50;
display: block;
etc..
etc..
}
@media only screen and (min-width: 980px) {
.element {
all: none;
}
}
Jadi kami dapat dengan cepat menghapus atau mengatur ulang gaya tanpa harus mendeklarasikan setiap properti.
Masuk akal?
all
yang sedang diusulkan untuk ulang semua properti CSS untuk elemen yang diberikan kepada nilai-nilai CSS-lebar tertentu - nilai yang Anda ingin gunakan akanunset
, yang me-reset properti baik nilainya mewarisi jika mewarisi secara default, atau jika tidak, nilai awalnya. Tidak ada kata tentang implementasi, tetapi senang mengetahui bahwa seseorang telah memikirkannya.all: revert
akan melakukan. Lihat jawaban saya. @CBroe Ya hal seperti itu ada sekarang.Jawaban:
Kata kunci CSS3
initial
menetapkan properti CSS3 ke nilai awal sebagaimana didefinisikan dalam spesifikasi . Katainitial
kunci tersebut memiliki dukungan browser yang luas kecuali untuk keluarga IE dan Opera Mini.Karena kurangnya dukungan IE dapat menyebabkan masalah di sini adalah beberapa cara Anda dapat mengatur ulang beberapa properti CSS ke nilai awalnya:
Seperti yang disebutkan dalam komentar oleh @ user566245:
[POST EDIT FEB 4, '17] Terpilih untuk menjadi norma modern, pengguna Joost
CONTOH DARI W3
JAVASCRIPT?
Tidak ada yang memikirkan selain css untuk mengatur ulang css? Iya?
Ada snip yang sepenuhnya relevan: https://stackoverflow.com/a/14791113/845310
dijawab 9 Feb '13 pada 20:15 oleh VisioN
Dengan semua ini dikatakan; saya tidak berpikir reset css adalah sesuatu yang layak kecuali kita berakhir dengan hanya satu browser web .. jika 'default' diatur oleh browser pada akhirnya.
Sebagai perbandingan, di sini adalah Firefox daftar nilai 40,0 untuk
<blockquote style="all: unset;font-style: oblique">
di manafont-style: oblique
operasi pemicu DOM.sumber
Untuk pembaca masa depan. Saya pikir inilah yang dimaksud tetapi saat ini tidak terlalu luas didukung (lihat di bawah):
sumber
all
.all
sebagai pertimbangan . Versi Edge di masa depan mungkin mendukungnya.#someselector { ... * { all: unset; } ... }
di Sass. Anda belum menyebutkan Sass di sini - apakah ini beberapa hal baru CSS3? Mencari "CSS bersarang" hanya membuat saya tutorial entry-level dan info Sass. Menambahkan bagian yang... * { ... } ...
bersarang ke CSS saya (dalam HTML5) memecah dokumen saya (elemen anak saya secara individual mengambil gaya yang saya hanya ingin terapkan pada induknya).Ada solusi baru yang ditemukan untuk masalah ini.
Gunakan
all: revert
atauall: unset
.Dari MDN:
Jadi, jika elemen memiliki nama kelas seperti
remove-all-styles
:Misalnya:
HTML:
Dengan CSS:
Akan mengatur ulang semua gaya yang diterapkan oleh
other-class
,another-class
dan semua gaya yang diwarisi dan diterapkan untuk itudiv
.Atau dalam kasus Anda:
Akan melakukan.
Klik di sini untuk mengetahui perbedaan antara gaya penulis, pengguna, agen-pengguna.
Sebagai contoh: jika kita ingin mengisolasi widget / komponen tertanam dari gaya halaman yang memuatnya , kita dapat menulis:
Yang akan
author styles
mengembalikan semua (yaitu CSS pengembang) keuser styles
(gaya yang ditetapkan pengguna situs web kami - skenario yang lebih kecil) atau keuser-agent
gaya itu sendiri jika tidak ada gaya pengguna yang ditetapkan.Lebih detail di sini: https://developer.mozilla.org/en-US/docs/Web/CSS/revert
Dan satu-satunya masalah adalah dukungannya : hanya Safari 9.1 dan iOS Safari 9.3 yang memiliki dukungan untuk
revert
nilai pada saat penulisan.Jadi saya akan mengatakan gunakan gaya ini dan mundur untuk jawaban lain.
sumber
all: initial
danall: unset
bekerja untuk saya di MS Edge 16).Biarkan saya menjawab pertanyaan ini dengan saksama, karena itu telah menjadi sumber rasa sakit bagi saya selama beberapa tahun dan sangat sedikit orang yang benar-benar memahami masalah dan mengapa masalah ini penting untuk diselesaikan. Jika saya bertanggung jawab untuk spec CSS, saya akan malu, terus terang, karena tidak membahas ini dalam dekade terakhir.
Masalah
Anda perlu menyisipkan markup ke dalam dokumen HTML, dan itu perlu terlihat dengan cara tertentu. Selain itu, Anda tidak memiliki dokumen ini, jadi Anda tidak dapat mengubah aturan gaya yang ada. Anda tidak tahu seperti apa style sheet itu , atau apa yang bisa mereka ubah menjadi.
Gunakan kasing untuk ini adalah saat Anda menyediakan komponen yang dapat ditampilkan untuk situs web pihak ketiga yang tidak dikenal untuk digunakan. Contohnya adalah:
Perbaikan paling sederhana
Letakkan semuanya di iframe. Ini memiliki serangkaian keterbatasannya sendiri:
Jika konten Anda dapat masuk ke dalam kotak, Anda dapat mengatasi masalah # 1 dengan meminta konten Anda menulis iframe dan secara eksplisit mengatur konten, sehingga menghindari masalah, karena iframe dan dokumen akan berbagi domain yang sama.
Solusi CSS
Saya sudah mencari solusi untuk ini, tetapi sayangnya tidak ada. Yang terbaik yang dapat Anda lakukan adalah secara eksplisit menimpa semua properti yang mungkin dapat ditimpa, dan menimpanya dengan apa yang Anda pikirkan seharusnya nilai defaultnya.
Bahkan ketika Anda menimpa, tidak ada cara untuk memastikan aturan CSS yang lebih bertarget tidak akan menimpa Anda . Yang terbaik yang dapat Anda lakukan di sini adalah memiliki target aturan penggantian Anda sespesifik mungkin dan berharap dokumen induk tidak sengaja melakukannya dengan baik: gunakan ID yang tidak jelas atau acak pada elemen induk konten Anda, dan gunakan! Penting pada semua definisi nilai properti .
sumber
p { color: blue}
tidak akan diatur ulang)cara lain:
1) termasuk kode css (file) dari Yahoo CSS reset dan kemudian masukkan semuanya ke dalam DIV ini:
2) atau gunakan
sumber
Saya tidak merekomendasikan menggunakan jawaban yang telah ditandai sebagai benar di sini. Ini adalah gumpalan besar CSS yang mencoba untuk menutupi semuanya.
Saya menyarankan agar Anda mengevaluasi cara menghapus gaya dari suatu elemen berdasarkan kasus.
Katakanlah untuk keperluan SEO Anda perlu memasukkan H1 pada halaman yang tidak memiliki judul aktual dalam desain. Anda mungkin ingin membuat tautan nav dari halaman itu menjadi H1 tetapi tentu saja Anda tidak ingin tautan navigasi itu ditampilkan sebagai H1 raksasa di halaman tersebut.
Yang harus Anda lakukan adalah membungkus elemen itu dalam tag h1 dan memeriksanya. Lihat gaya CSS apa yang diterapkan secara khusus pada elemen h1.
Katakanlah saya melihat gaya berikut diterapkan pada elemen.
Sekarang Anda perlu menentukan titik gaya yang tepat yang diterapkan pada H1 dan menghapusnya dalam kelas css. Ini akan terlihat seperti berikut ini:
Ini jauh lebih bersih dan tidak hanya membuang gumpalan kode acak ke css Anda yang Anda tidak tahu apa yang sebenarnya dilakukannya.
Sekarang Anda dapat menambahkan kelas ini ke h1 Anda
sumber
Jika Anda kebetulan menggunakan sass dalam sistem build, salah satu cara untuk melakukan ini yang akan bekerja di semua browser utama adalah dengan membungkus semua impor gaya Anda dengan pemilih:: (bukan) seperti ...
Kemudian Anda dapat menggunakan kelas penonaktifan pada sebuah wadah dan sub-konten tidak akan memiliki gaya apa pun.
Tentu saja semua gaya Anda sekarang akan diawali dengan pemilih: not (), jadi itu agak jelek, tetapi bekerja dengan baik.
sumber
Anda menyebutkan situs pertama seluler ... Untuk desain yang responsif, tentu saja memungkinkan untuk mengganti gaya layar kecil dengan gaya layar besar. Tetapi Anda mungkin tidak perlu melakukannya.
Coba ini:
Kueri media itu tidak tumpang tindih, sehingga aturan mereka tidak saling menimpa. Ini membuatnya lebih mudah untuk mempertahankan setiap set gaya secara terpisah.
sumber
SOLUSI LEBIH BAIK
Unduh stylesheet "salin / tempel" untuk mengatur ulang properti css ke default (gaya UA):
https://github.com/monmomo04/resetCss.git
Terima kasih @ Milche Patern! Akhirnya, ada baiknya menyebutkan bahwa properti-properti itu akan mengatur ulang gaya ke gaya default elemen root teratas tetapi tidak ke nilai awal untuk setiap elemen HTML. Jadi untuk memperbaikinya, saya telah mengambil gaya "agen-pengguna" dari browser berbasis webkit dan menerapkannya di bawah kelas "reset-ini".
Tautan yang berguna:Saya benar-benar mencari nilai properti gaya reset / default. Percobaan pertama saya adalah menyalin nilai yang dihitung dari alat Dev browser dari elemen root (html). Tetapi ketika dihitung, itu akan terlihat / bekerja berbeda pada setiap sistem.
Bagi mereka yang menemukan browser crash ketika mencoba menggunakan tanda bintang * untuk mengatur ulang gaya elemen anak-anak, dan seperti yang saya tahu itu tidak bekerja untuk Anda, saya telah mengganti tanda bintang "*" dengan semua nama tag HTML sebagai gantinya . Peramban tidak mogok; Saya menggunakan Chrome Versi 46.0.2490.71 m.
Unduh stylesheet "salin / tempel" untuk mengatur ulang properti css ke default (gaya UA):
https://github.com/monmomo04/resetCss.git
Gaya agen pengguna:
CSS default browser untuk elemen HTML
http://trac.webkit.org/browser/trunk/Source/WebCore/css/html.css
Spesifisitas Css (perhatikan spesifikasi):
https://css-tricks.com/specifics-on-css-specificity/
https://github.com/monmomo04/resetCss.git
sumber
Dalam skenario spesifik saya, saya ingin melewatkan penerapan gaya umum ke bagian tertentu halaman, lebih baik diilustrasikan seperti ini:
Setelah mengacaukan dengan reset CSS yang tidak membawa banyak keberhasilan (terutama karena aturan diutamakan dan hierarki stylesheet yang kompleks), membawa jQuery di mana-mana ke penyelamatan, yang melakukan pekerjaan dengan sangat cepat dan cukup kotor:
(Sekarang katakan betapa jahatnya menggunakan JS untuk berurusan dengan CSS :-))
sumber
Bagi Anda yang mencoba mencari cara untuk benar-benar menghapus styling dari elemen saja, tanpa menghapus css dari file, solusi ini berfungsi dengan jquery:
sumber
jika Anda mengatur CSS Anda di dalam kelas, Anda dapat dengan mudah menghapusnya menggunakan metode jQuery removeClass (). Kode di bawah ini menghapus kelas elemen.:
Jika tidak ada parameter yang ditentukan, metode ini akan menghapus SEMUA nama kelas dari elemen yang dipilih.
sumber
Tidak, ini hanya masalah mengelola struktur css Anda dengan lebih baik.
Dalam kasus Anda, saya akan memesan sesuatu css saya seperti ini:
Percobaan saja.
sumber
Apakah Anda sedang mencari aturan penting? Itu tidak membatalkan semua deklarasi tetapi menyediakan cara untuk menimpanya.
"Ketika suatu! Aturan penting digunakan pada deklarasi gaya, deklarasi ini mengesampingkan deklarasi lain yang dibuat dalam CSS, di mana pun itu dalam daftar deklarasi. Meskipun,! Penting tidak ada hubungannya dengan kekhususan."
https://developer.mozilla.org/en-US/docs/CSS/Specificity#The_!important_exception
sumber