Yanıtlar:
Gizlemeyi ayarlamayı display:noneve gösterilecek şekilde ayarlamayı deneyin display:block.
display: block, bazılarının display: inline( <span>veya <a>veya <img>DOM öğeleri gibi) ayarlanması gerekir .
hiddenile adlandırılan bir CSS sınıfı oluşturun display: none. Sınıfı gizlemek için bir öğeye ekleyin, kaldırın. Kaldırırken displayözellik, öğenin varsayılan değerine geri yüklenir.
Kullanımı display:nonesadece bir öğeyi kaldırmak için iyi bir seçenektir, ancak ekran okuyucular için de kaldırılacaktır . SEO'yu etkiliyorsa tartışmalar da var. Bu konuda iyi ve kısa bir makale varA List Apart'ta
Bir öğeyi gerçekten gizlemek ve kaldırmak istemiyorsanız , daha iyi kullanın:
div {
position: absolute;
left: -999em;
}
Bunun gibi ekran okuyucuları tarafından da okunabilir.
Bu yöntemin tek dezavantajı, bu DIV'nin gerçekten oluşturulmuş olması ve özellikle cep telefonlarında performansı etkileyebilmesidir .
visibility: hidden;, alan için bir çakışma olmayacakları, sadece çatışacakları başka mutlak unsurlara sahip olduğunuzu varsayalım z-index. Sadece gideceğim bir elementi sakladığım içinvisibility
Kullanmak yerine, Bak visibility: hidden;kullanımını display: none;. İlk seçenek gizler ama yine de uzay ve gizler ikinci seçeneği alır ve yok herhangi bir yer kaplıyor.
Bu sorunun cevabı display: none ve display: block komutunu kullanmaktır, ancak bu, görünürlük özelliğini kullanarak içeriği göstermek ve gizlemek için css geçişlerini kullanmaya çalışan birine yardımcı olmaz.
Bu da beni çıldırdı, çünkü ekran kullanmak herhangi bir css geçişini öldürüyor.
Bir çözüm bunu görünürlük kullanan sınıfa eklemektir:
overflow:hidden
Bunun çalışması düzeni düzenine bağlıdır, ancak boş içeriği bulunduğu div içinde tutmalıdır.
display: none çözüm değildir, bu tamamen alanı ile öğeleri gizler.
display:nonevevisibility: hiddenvisibility:hidden etiketin görünür olmadığı, ancak sayfada etiket için yer ayrıldığı anlamına gelir.
display:noneanlamına gelir elemanları ile alanı tamamen gizler. (yine de DOM aracılığıyla etkileşime girebilmenize rağmen)
Geçiş displayyapmak yumuşak CSS geçişlerine izin vermez. Bunun yerine hem . Hem visibilityde max-height.
visibility: hidden;
max-height: 0;
transform: translateX(-100%). Biz istemiyoruzdisplay: none
display:nonegizlemek ve display:blockgöstermek için ayarlamak .
as though they are not in the DOM at all (but without actually removing them from the DOM)
visibility: hiddenyalnızca içerik görüntüsünü durdurur, ancak yine de dikey / yatay boşluk kullanır, display: none öğe için dikey / yatay alanı kaldırmaz.
ekrandan sonra onları geri koymak için farklı bir bakış: yok. display: block / inline etc. kullanmayın. Bunun yerine (javascript kullanılıyorsa) css özellik ekranını '' (yani boş) olarak ayarlayın
bildiğim kadarıyla 4 şekilde mümkündür
<button style="display:none;"></button>#buttonId{ display:none; }$('#buttonId').prop('display':'none');ve $("#buttonId").css('opacity', 0);
offsetTopvedisplay:nonekuracakoffsetTopburada 0'a Benim çözüm kullanmak olduvisibility: hiddenben tekrar görünür elemanı yapmak için gereken kez daha sonra 0'a genişlik ve yüksekliğini ayarlamak, üç nitelikleri kullanarak kaldırıldı JavaScript. Biraz hacky bir çözüm, ama hemen hemen tüm kullanım durumları için iyi çalışıyor.