De visibility
eigenschap in CSS heeft twee verschillende functies. Het verbergt rijen en kolommen van een tabel, en het verbergt ook een element zonder de lay-out te wijzigen.
p ( visibility: hidden; ) tr ( visibility: collapse; )
visibility
heeft vier geldige waarden: visible
, hidden
, collapse
, en inherit
. We zullen ze allemaal doornemen om meer te leren.
zichtbaar
Net zoals het klinkt, visible
maakt dingen zichtbaar. Niets is standaard verborgen, dus deze waarde doet niets tenzij u hidden
dit of een ouder van dit element heeft ingesteld.
verborgen
De hidden
waarde verbergt dingen. Dit is anders dan gebruiken display: none
, omdat hidden
alleen elementen visueel worden verborgen. Het element is er nog steeds en neemt nog steeds ruimte in op de pagina, maar je kunt het niet meer zien (een beetje zoals de dekking op 0 zetten). Interessant is dat deze eigenschap niet standaard overerft. Dat betekent dat je, in tegenstelling tot de display
of opacity
eigenschappen, een element kunt maken hidden
en toch een van zijn kinderen kunt hebben visible
, zoals dit:
Merk op dat, hoewel verborgen, het bovenliggende element de :hover
.
ineenstorting
Deze heeft alleen effect op tabelrijen ( ), rijgroepen (zoals
), kolommen (
), kolomgroepen (
) of elementen die op die manier zijn gemaakt via
display
).
In tegenstelling tot hidden
deze waarde verbergt deze waarde het table-subelement, zonder de ruimte te verlaten waar het was. Als het ergens anders dan op een tabelsubelement wordt gebruikt, werkt het als visibility: hidden
.
Dit heeft zoveel eigenaardigheden dat het moeilijk is om te weten waar je moet beginnen. Gewoon als voorgerecht:
- Chrome / Safari wordt een rij samengevouwen, maar de ruimte die het innam, blijft behouden. En als de tabelcellen binnenin een rand hebben, zal die langs de bovenrand in een enkele rand vallen.
- Chrome / Safari zal een kolom of kolomgroep niet samenvouwen.
- Safari klapt een tabelcel samen (verkeerd) maar Chrome niet (goed).
- In elke browser, als een cel zich in een kolom bevindt die is samengevouwen (ongeacht of deze daadwerkelijk is samengevouwen), wordt de tekst in die cel niet weergegeven.
- Opera (vóór WebKit) zal de rotzooi uit alles laten vallen, behalve een tabelcel (wat correct is).
Er is meer, maar eigenlijk: gebruik dit nooit.
erven
De standaardwaarde. Dit zorgt er simpelweg voor dat het element de waarde van zijn ouder overneemt.
Flexbox
visibility: collapse;
wordt ook gebruikt in Flexbox, en beter gedefinieerd.
Browser-ondersteuning
De basis, afgezien van alle eigenaardigheden van instorten:
Ieder | Ieder | Ieder | 4+ | 4+ | Ieder | Ieder |
IE 7 ondersteunt geen collapse
of inherit
.