Yanıtlar:
visibilityÖzellik yalnızca bir öğeyi görüntüleme edip etmeyeceğine tarayıcısına anlatır. Ya görünür ( visible- görebilirsin ) ya da görünmez ( hidden- göremezsin).
displayMülkiyet tarayıcıya bildirir nasıl çizmek ve hiç eğer, bir öğeyi görüntüleme - bu şekilde gösterilip gösterilmemesi gerektiğini inlineeleman veya (yani o metin ve diğer satır içi unsurlarla akar) block-seviye elemanın (yani o yükseklik ve genişlik özelliklerine sahip olduğunu siz) o, vb yüzebilen var, ayarlayabilir veya bir inline-block(bir blok kutusu gibi davranan ama satır içi yerine serilir) ve bazı diğerleri (yani list-item, table, table-row, table-cell, flex, vs).
Bir öğeyi olarak ayarladığınızda , display: blockaynı zamanda ayarladığınızda visibility: hidden, tarayıcı onu bir blok öğe olarak görmeye devam eder, ancak siz onu görmezsiniz. Görünmez bir kutunun üstüne kırmızı bir kutuyu yığmanız gibi: Kırmızı kutu, gerçekte göremediğiniz bir fiziksel kutunun üstünde dururken havada yüzüyormuş gibi görünür.
Başka bir deyişle, bu display, görünmeyen noneöğelerin, görünür olup olmadıklarına bakılmaksızın bir sayfadaki öğelerin akışını yine de etkilemeyeceği anlamına gelir . Bir öğeyi çevreleyen kutular display: none, bu öğe hiç orada olmamış gibi davranacaktır (DOM'da kalmasına rağmen).
display: none;, bu öğe DOM'dan kaldırılır mı? yoksa tamamen kafam mı karıştı?
görünürlük: gizli;
görüntü yok;
ekstra notlar:
görüntü yok; DOM öğelerinin görsel stilini / fiziksel alanını DOM'dan kaldırırken visibility: hidden; öğeyi kaldırmayacak, basitçe gizleyecektir. Dolayısıyla, DOM'nuzda 300 piksel dikey alan kaplayan bir div, görünürlük ayarlandığında HALA 300 piksel dikey genişlikte yer kaplar: gizli; ancak görüntülenecek şekilde ayarlandığında: yok; görsel stilleri ve kapladığı alan gizlenir ve daha iyi bir kelime olmadığı için alan "serbest bırakılır".
[DÜZENLE] - Bir süre önce yukarıdakileri yazdım ve yeterince bilgili olmadığım veya kötü bir gün geçirdiğimden emin değilim, ama gerçek şu ki, öğe DOM hiyerarşisinden ASLA kaldırılmıyor. Tüm blok seviyesi ekran 'stilleri' display kullanılırken tamamen 'gizlidir': hiçbiri, oysa görünürlük ile: gizli; öğenin kendisi gizlidir, ancak yine de DOM'da görsel bir alan kaplar. Umarım bu işleri düzeltir
display: noneolacak değil DOM bir öğe kaldırmak. Öğe hala oradadır, yalnızca görüntülenmez .