Inhoud
In het algemeen, is de inhoud van een block box beperkt tot de randen van de inhoud van de box. In bepaalde gevallen, kan een box overvloeien, dit betekent dat de inhoud gedeeltelijk of geheel buiten de box ligt, bijv.:
Elke keer dat overvloeien voorkomt, specificeert de 'overflow' eigenschap hoe (en of) een box geclipt wordt. De 'clip' eigenschap specificeert de grootte en vorm van de clipping region. Het specificeren van een kleine clipping region kan teweegbrengen dat anders zichtbare inhoud geclipt wordt.
Waarde: | visible | hidden | scroll | auto | inherit |
Startwaarde: | visible |
Heeft betrekking op: | blok-niveau en vervangen elementen |
Geërfd: | nee |
Percentages: | G/A |
Media: | visueel |
Deze eigenschap specificeert of de inhoud van een blok-niveau element geclipt wordt als het buiten de box van het element vloeit (dat zich gedraagt als een bevattend blok voor de inhoud). De waarden hebben de volgende betekenissen:
Zelfs als 'overflow' gezet is op 'visible', kan inhoud geclipt worden naar het document scherm van een User Agent door de lokale operating omgeving.
Voorbeeld(en):
Beschouw het volgende voorbeeld van een blok citaat (BLOCKQUOTE) dat te groot is voor het bevattende blok (vastgesteld door een DIV). Hier is het brondocument:
<DIV id="border"> <BLOCKQUOTE> <P>I didn't like the play, but then I saw it under adverse conditions - the curtain was up. <DIV class="attributed-to">- Groucho Marx</DIV> </BLOCKQUOTE> </DIV>
Hier is het stijlblad dat de groottes en stijl van de gegenereerde boxen beheerst:
DIV#border { width : 100px; height: 100px; border: thin solid red; } BLOCKQUOTE { width : 125px; height : 100px; margin-top: 50px; margin-left: 50px; border: thin dashed black } DIV.attributed-to { text-align : right; }
De startwaarde van 'overflow' is 'visible', dus de BLOCKQUOTE zou opgemaakt worden zonder clipping, zoiets als dit:
'Overflow' op 'hidden' zetten voor het DIV element, aan de andere kant, bewerkstelligt dat de BLOCKQUOTE geclipt wordt door het bevattende blok:
Een waarde 'scroll' zou User Agenten die een zichtbaar scrolling mechanisme ondersteunen, vertellen om er een te tonen zodat gebruikers toegang hebben tot geclipte inhoud.
Een clipping region definieert welk gedeelte van de weergegeven inhoud van een element zichtbaar is. De default is, dat de clipping region dezelfde grootte en vorm heeft als de box(en) van het element. Echter, de clipping region kan gewijzigd worden door de 'clip' eigenschap.
De 'clip' eigenschap heeft betrekking op elementen die een 'overflow' eigenschap hebben met een andere waarde dan 'visible'. De waarden hebben de volgende betekenissen:
<top>, <right>, <bottom>, and <left> kunnen of een <length> waarde hebben of 'auto'. Negatieve lengtes zijn toegestaan. De waarde 'auto' betekent dat een bepaalde rand van de clipping region hetzelfde zal zijn als de rand van de gegenereerde box van het element (d.i., 'auto' betekent hetzelfde als '0'.)
Wanneer coördinaten afgerond worden op pixelcoördinaten, moet erop gelet worden dat er geen pixels zichtbaar blijven als <left> + <right> gelijk is aan de breedte van het element (of <top> + <bottom> gelijk aan de hoogte van het element), en andersom dat er geen pixels verborgen blijven wanneer deze waarden 0 zijn.
De voorouders van het element kunnen ook clipping regions hebben (in geval dat hun 'overflow' eigenschap niet 'visible' is); wat wordt weergegeven is het snijpunt van de verschillende clipping regions.
Als de clipping region de grenzen van het documentscherm van de User Agent overschrijdt, kan de inhoud geclipt worden naar dat scherm door de lokale operating omgeving.
Voorbeeld(en):
De volgende twee regels:
P { clip: rect(5px, 10px, 10px, 5px); } P { clip: rect(5px, -5px, 10px, 5px); }
zullen de rechthoekige clipping regions, die beperkt worden door de gestreepte lijnen, in de volgende illustraties creëren:
Noot. In CSS2 zijn alle clipping regions rechthoekig. We anticiperen op toekomstige extensies die niet rechthoekig clipping mogelijk maken.
Waarde: | visible | hidden | collapse | inherit |
Startwaarde: | visible |
Heeft betrekking op: | alle elementen |
Geërfd: | ja |
Percentages: | G/A |
Media: | visueel |
De 'visibility' eigenschap specificeert of de boxen die gegenereerd zijn door een element, weergegeven worden. Onzichtbare boxen beïnvloeden ook de layout (zet de 'display' eigenschap op 'none' om boxgeneratie helemaal te onderdrukken). De waarden hebben de volgende betekenissen:
Deze eigenschap kan samen met scripts gebruikt worden om dynamische effecten te creëren.
In het volgende voorbeeld wordt een gebruiker-gedefinieerde scriptfunctie aangeroepen door het indrukken van een formulierknop, die ervoor zorgt dat de corresponderende box zichtbaar wordt en dat de andere verborgen wordt. Aangezien deze boxen dezelfde grootte en positie hebben, is het effect dat de een de ander vervangt. (De script code is in een hypothetische scripttaal. Ze kan of kan geen enkel effect hebben in een CSS-capabele User Agent.)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> <HTML> <HEAD> <STYLE type="text/css"> <!-- #container1 { position: absolute; top: 2in; left: 2in; width: 2in } #container2 { position: absolute; top: 2in; left: 2in; width: 2in; visibility: hidden; } --> </STYLE> </HEAD> <BODY> <P>Choose a suspect:</P> <DIV id="container1"> <IMG alt="Al Capone" width="100" height="100" src="suspect1.jpg"> <P>Name: Al Capone</P> <P>Residence: Chicago</P> </DIV> <DIV id="container2"> <IMG alt="Lucky Luciano" width="100" height="100" src="suspect2.jpg"> <P>Name: Lucky Luciano</P> <P>Residence: New York</P> </DIV> <FORM method="post" action="http://www.suspect.org/process-bums"> <P> <INPUT name="Capone" type="button" value="Capone" onclick='show("container1");hide("container2")'> <INPUT name="Luciano" type="button" value="Luciano" onclick='show("container2");hide("container1")'> </FORM> </BODY> </HTML>