Yanıtlar:
Gizlemeyi ayarlamayı display:none
ve 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 .
hidden
ile 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:none
sadece 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:none
vevisibility: hidden
visibility:hidden
etiketin görünür olmadığı, ancak sayfada etiket için yer ayrıldığı anlamına gelir.
display:none
anlamına gelir elemanları ile alanı tamamen gizler. (yine de DOM aracılığıyla etkileşime girebilmenize rağmen)
Geçiş display
yapmak yumuşak CSS geçişlerine izin vermez. Bunun yerine hem . Hem visibility
de max-height
.
visibility: hidden;
max-height: 0;
transform: translateX(-100%)
. Biz istemiyoruzdisplay: none
display:none
gizlemek ve display:block
göstermek için ayarlamak .
as though they are not in the DOM at all (but without actually removing them from the DOM)
visibility: hidden
yalnı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);
offsetTop
vedisplay:none
kuracakoffsetTop
burada 0'a Benim çözüm kullanmak olduvisibility: hidden
ben 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.