Bagaimana cara membatalkan properti css?

109

Pada dasarnya saya memiliki dua css eksternal di halaman saya.

Yang pertama Main.cssberisi semua aturan gaya tetapi saya tidak memiliki akses ke sana, dan karenanya saya tidak dapat memodifikasinya. Saya memiliki akses ke file kedua Template.css, jadi saya perlu mengganti Main.cssnilai di template.css.

Ini mudah dan saya harus mengubah nilainya, tetapi bagaimana cara menghapus properti sepenuhnya?

Seperti mengatakan kelas .c1memiliki height: 40px;, bagaimana cara menyingkirkan properti ketinggian ini?

Bluemagica
sumber

Jawaban:

175

Anda harus mengatur ulang setiap properti kembali ke nilai defaultnya. Itu tidak bagus, tapi itu satu-satunya cara, mengingat informasi yang Anda berikan kepada kami.

Dalam contoh Anda, Anda akan melakukan:

.c1 {
    height: auto;
}

Anda harus mencari setiap properti di sini:

https://developer.mozilla.org/en-US/docs/Web/CSS/Reference

Untuk contoh,height :

Nilai awal: auto

Lain contoh,max-height :

Nilai awal: none


Di tahun 2017, sekarang ada cara lain yaitu unsetkata kunci:

.c1 {
    height: unset;
}

Beberapa dokumentasi: https://developer.mozilla.org/en-US/docs/Web/CSS/unset

Kata kunci CSS yang tidak disetel adalah kombinasi dari kata kunci awal dan kata kunci warisan. Seperti dua kata kunci lebar CSS lainnya, ini dapat diterapkan ke properti CSS apa pun, termasuk singkatan CSS semuanya. Kata kunci ini menyetel ulang properti ke nilai yang diwariskan jika diwarisi dari induknya atau ke nilai awalnya jika tidak. Dengan kata lain, ia berperilaku seperti kata kunci yang diwariskan dalam kasus pertama dan seperti kata kunci awal dalam kasus kedua.

Dukungan browser bagus: http://caniuse.com/css-unset-value

tigapuluhdot
sumber
3
1 untuk jawaban dan referensi yang bagus. Saya pikir tautannya telah berubah menjadi: developer.mozilla.org/en-US/docs/Web/CSS/Reference
Paolo
Menyetel nilai ke auto sepertinya tidak berhasil jika tidak ada nilai awal ("nilai awal: tidak ada"). Misalnya, saat melakukan "max-width: auto;" Saya mendapatkan kesalahan nilai properti yang tidak sesuai. Apa yang harus saya lakukan?
pengguna1779563
3
@ user1779563 Anda menyetelnya ke "none".
AndreKR
1
Saya ingin berterima kasih kepada @simhumileco atas jawabannya yang telah saya curi tanpa malu-malu karena jawaban saya diterima dan orang-orang tidak boleh scroll ke bawah.
tigapuluhdot
10
.c1 {
    height: unset;
}

The unsetnilai tambah di CSS3 juga memecahkan masalah ini dan itu bahkan lebih universal metode dari autoatauinitial karena set untuk setiap properti CSS nilai default dan tambahan default behawior relatif terhadap induknya.

Perhatikan bahwa initialnilai merusak perilaku yang disebutkan di atas.

Dari MDN :

Seperti dua kata kunci lebar CSS lainnya, ini dapat diterapkan ke properti CSS apa pun, termasuk singkatan CSS semuanya . Kata kunci ini menyetel ulang properti ke nilai yang diwariskan jika diwarisi dari induknya atau ke nilai awalnya jika tidak.

simhumileco.dll
sumber
9

seperti mengatakan kelas .c1 memiliki tinggi: 40px; bagaimana cara menghilangkan properti ketinggian ini?

Sayangnya, Anda tidak bisa. CSS tidak memiliki placeholder "default".

Jika demikian, Anda akan menyetel ulang properti menggunakan

 height: auto;

seperti yang ditunjukkan @Ben dengan benar, dalam beberapa kasus, inheritadalah cara yang tepat, misalnya saat menyetel ulang warna teks suatu aelemen (properti itu diwarisi dari elemen induk):

a { color: inherit }
Pekka
sumber
3
Saya akan memberikan +1 untuk itu. Ada juga nilai "mewarisi". Dalam beberapa konteks selain tinggi, mewarisi lebih tepat.
Ben
1
@meo kamu benar. (Pertanyaan terkait) yang tampaknya berarti bahwa ada properti yang tidak dapat disetel ulang ke defaultnya di IE ... sayang sekali
Pekka
7

Kata initialkunci sedang ditambahkan di CSS3 untuk memungkinkan penulis menentukan nilai awal ini secara eksplisit.

RonyK
sumber
FYI: height:initial;tampaknya tidak berfungsi di IE9.
Kris Hollenbeck
jadi apa perbedaan antara initialdan autodan unset?.
ExillustX
2

Untuk menyingkirkan properti ketinggian tetap, Anda dapat mengaturnya ke nilai default:

height: auto;
Richard H.
sumber
2

Anda perlu menyediakan pemilih dengan kekhususan yang lebih tinggi daripada yang ada di Main.css. Dengan selektor itu, setel nilai properti yang Anda inginkan ke defaultnya, mis

body .c1 {
    height: auto;
}

Tidak ada nilai "default" yang akan berfungsi untuk semua properti, Anda perlu mencari nilai default untuk masing-masing properti dan menggunakannya.

Jon
sumber
1

Saya mengalami masalah yang bahkan saat saya menimpa "tinggi" menjadi "tidak disetel" atau "awal", perilakunya berbeda dari saat saya menghapus setelan sebelumnya.

Ternyata saya perlu menghapus properti min-height juga!

height: unset;
min-height: none

Sunting: Saya menguji pada IE 7 dan tidak mengenali "tidak disetel", jadi "otomatis" berfungsi lebih baik ".

Nathalia Xavier
sumber