Hanya sebuah catatan, jika Anda menggunakan JavaScript untuk menata elemen seperti $el.style.maxHeight = '50px';menggunakan $el.style.maxHeight = 'none';tidak akan "mengatur ulang" atau "menghapus" 50px, itu hanya akan menimpanya. Ini berarti bahwa jika Anda mencoba "mengatur ulang" ketinggian maksimal suatu elemen yang menggunakannya, $el.style.maxHeight = 'none';ia akan menerapkan nonenilai pada max-heightproperti elemen tersebut, mengabaikan semua max-heightproperti valid lainnya dalam aturan pemilihan CSS yang cocok dengan elemen itu.
Sebuah contoh:
styles.css
.set-max-height { max-height:50px;}
main.js
document.querySelectorAll('.set-max-height').forEach($el =>{if($el.hasAttribute('data-hidden')){
$el.style.maxHeight ='0px';// Set max-height to 0px.}else{
$el.style.maxHeight ='none';// 'Unset' max-height according to accepted answer.});
Untuk benar-benar "membatalkan" gaya inline, Anda harus menggunakan $el.style.removeProperty('max-height');.
Untuk menyelesaikan ini untuk seluruh aturan gaya dan bukan hanya elemen tunggal, Anda harus terlebih dahulu menemukan aturan yang ingin Anda modifikasi, dan kemudian memanggil removePropertyfungsi pada aturan itu:
for(let i =0; i < document.styleSheets[0].cssRules.length;++i){if(document.styleSheets[0].cssRules[i].selectorText =='.set-max-height'){
document.styleSheets[0].cssRules[i].style.removeProperty('max-height');break;}}
Anda dapat menemukan StyleSheetdan CssRuleobjek sesuka Anda, tetapi untuk aplikasi sederhana saya yakin di atas sudah cukup.
Maaf karena menempatkan ini sebagai jawaban, tapi saya tidak punya 50 perwakilan jadi saya tidak bisa berkomentar.
maaf tapi ini salah, pengaturan max-height: 100% relatif terhadap tinggi blok yang mengandung. Jadi itu membatasi tinggi maks sebenarnya.
BiAiB
1
Kamu bisa memakai
max-height: unset;
yang me-reset properti ke nilai yang diwarisi jika Anda mewarisi dari induknya (akan berfungsi sebagai pewarisan kata kunci) dan jika Anda tidak mewarisi akan me-reset ke nilai awalnya (akan berfungsi sebagai kata kunci awal).
min-height
(none
tidak diizinkan dan menghasilkan nilai yang tidak ditimpa).min-height
adalah 0, tetapi karena "Infinity" bukanlah sesuatu di CSS,max-height
default kenone
.Anda dapat menghapus atribut max-height dengan menggunakan css berikut:
sumber
Hanya sebuah catatan, jika Anda menggunakan JavaScript untuk menata elemen seperti
$el.style.maxHeight = '50px';
menggunakan$el.style.maxHeight = 'none';
tidak akan "mengatur ulang" atau "menghapus"50px
, itu hanya akan menimpanya. Ini berarti bahwa jika Anda mencoba "mengatur ulang" ketinggian maksimal suatu elemen yang menggunakannya,$el.style.maxHeight = 'none';
ia akan menerapkannone
nilai padamax-height
properti elemen tersebut, mengabaikan semuamax-height
properti valid lainnya dalam aturan pemilihan CSS yang cocok dengan elemen itu.Sebuah contoh:
styles.css
main.js
Untuk benar-benar "membatalkan" gaya inline, Anda harus menggunakan
$el.style.removeProperty('max-height');
.Untuk menyelesaikan ini untuk seluruh aturan gaya dan bukan hanya elemen tunggal, Anda harus terlebih dahulu menemukan aturan yang ingin Anda modifikasi, dan kemudian memanggil
removeProperty
fungsi pada aturan itu:Anda dapat menemukan
StyleSheet
danCssRule
objek sesuka Anda, tetapi untuk aplikasi sederhana saya yakin di atas sudah cukup.Maaf karena menempatkan ini sebagai jawaban, tapi saya tidak punya 50 perwakilan jadi saya tidak bisa berkomentar.
Bersulang.
sumber
Gunakan salah satunya
atau
Catatan : yang kedua relatif terhadap ketinggian blok yang mengandung.
sumber
Kamu bisa memakai
yang me-reset properti ke nilai yang diwarisi jika Anda mewarisi dari induknya (akan berfungsi sebagai pewarisan kata kunci) dan jika Anda tidak mewarisi akan me-reset ke nilai awalnya (akan berfungsi sebagai kata kunci awal).
sumber