splitter

von 2 Mitwirkenden:

Ein Element, das vor oder nach einem Element innerhalb eines Containers auftauchen sollte. Das Ziehen des Trenners ändert die Größe der Geschwisterelemente des Trenners. Platziert man ein 'Griffchen' (grippy) innerhalb eines Trenners, so wird ein Geschwisterelement des Trenners beim Anklicken des 'Griffchens' zugeklappt.

Weitere Information sind im XUL Tutorial verfügbar.

Attribute
collapse, resizeafter, resizebefore, state, substate
Styleklassen
tree-splitter

Beispiele

 splitter_arrow.png

<splitter tooltiptext="Größe der Suchbox verändern" oncommand="alert('Der Splitter wurde gezogen!')">
   <vbox id="Beispiel_vbox" />
</splitter>

Attribute

collapse
Type: one of the values below
Determines which side of the splitter is collapsed when its grippy is clicked. If this attribute is not specified, the splitter will not cause a collapse. You should put a grippy element inside the splitter when it is used for collapsing.
none
No collapsing occurs.
before
When the grippy is clicked, the element immediately before the splitter in the same parent is collapsed so that its width or height is 0.
after
When the grippy is clicked, the element immediately after the splitter in the same parent is collapsed so that its width or height is 0.
both
Either the element immediately before the splitter, or the element immediately after the splitter can be collapsed, if the size of that element would fall below the minimum size due to the position of the splitter.
resizeafter
Type: one of the values below
This attribute indicates which element to the right or below the splitter should be resized when the splitter is repositioned.
closest
The element immediately to the right or below the splitter resizes.
farthest
The element that is the farthest away from the splitter to the right or below the splitter resizes.
grow
The elements to the right or below the splitter do not change size (unless they are flexible) when the splitter is dragged, but instead the entire container changes size.
flex
The closest flexible element resizes.
resizebefore
Type: one of the values below
This attribute indicates which element to the left or above the splitter should be resized when the splitter is repositioned.
closest
The element immediately to the left or above the splitter resizes.
farthest
The element that is the farthest away from the splitter to the left or above the splitter resizes.
flex
The closest flexible element resizes.
state
Type: one of the values below
Indicates whether the splitter has collapsed content or not. This attribute will be updated automatically as the splitter is moved, and is generally used in a stylesheet to apply a different appearance for each state.
open
The content either before or after the splitter, depending on the value of the collapsed attribute, is currently displayed.
collapsed
The content either before or after the splitter is collapsed and is not visible.
dragging
The user is current adjusting the position of the splitter, typically by dragging it with the mouse.
substate
Type: one of the values below
On splitters which have state="collapsed" and collapse="both", determines which direction the splitter is actually collapsed in. Since collapse="both" is a Gecko 1.9+ feature, this will have no effect on earlier versions.
before
The element immediately before the splitter is collapsed.
after
The element immediately after the splitter is collapsed.

Eigenschaften

Geerbte Eigenschaften
align, attributes, allowEvents, baseURI, boxObject, builder, childElementCount, childNodes, children, className, clientHeight, clientLeft, clientTop, clientWidth, collapsed, contextMenu, controllers, database, datasources, dir, firstChild, firstElementChild, flex, height, hidden, id, lastChild, lastElementChild, left, localName, maxHeight, maxWidth, menu, minHeight, minWidth, namespaceURI, nextElementSibling, nextSibling, nodeName, nodeType, nodeValue, observes, ordinal, orient, ownerDocument, pack, parentNode, persist, prefix, previousElementSibling, previousSibling, ref, resource, scrollHeight, scrollLeft, scrollTop, scrollWidth, statusText, style, tagName,textContent, tooltip, tooltipText, top, width

Methoden

Geerbte Methoden
element.addEventListener(), node.appendChild(), blur, click, node.cloneNode(), node.compareDocumentPosition(), element.dispatchEvent(), doCommand, focus, element.getAttribute(), element.getAttributeNode(), element.getAttributeNodeNS(), element.getAttributeNS(), element.getBoundingClientRect(), element.getClientRects(), getElementsByAttribute, getElementsByAttributeNS, element.getElementsByClassName(), element.getElementsByTagName(), element.getElementsByTagNameNS(), node.getFeature(), node.getUserData(), element.hasAttribute(), element.hasAttributeNS(), nodes.hasAttributes(), nodes.hasChildNodes(), node.insertBefore(), node.isDefaultNamespace(), node.isEqualNode(), node.isSameNode(), node.isSupported(), node.lookupNamespaceURI(), node.lookupPrefix(), node.normalize(), element.querySelector(), element.querySelectorAll(), element.removeAttribute(), element.removeAttributeNode(), element.removeAttributeNS(), node.removeChild(), element.removeEventListener(), node.replaceChild(), element.setAttribute(), element.setAttributeNode(), element.setAttributeNodeNS(), element.setAttributeNS(), node.setUserData()

Styleklassen

Folgende Klassen können benutzt werden, um den Stil des Elements zu bestimmen. Statt den Stil des Elements direkt zu ändern, sollten diese Klassen zu Hilfe genommen werden, da sie sich natürlicher in das vom Benutzer gewählte Theme der Benutzeroberfläche einfügen.

tree-splitter
This splitter is intended to be used in tree columns (in-between treecol elements). The splitter will be drawn with no width so that it isn't visible, however, the columns may still be resized.

	<tree id="tree1" flex="1" height="300" enableColumnDrag="true">
	  <treecols>
    	    <treecol id="name" label="Name" flex="1"/>
	    <splitter class="tree-splitter"/>
    	    <treecol id="id" label="ID" flex="1"/>
	    <splitter class="tree-splitter"/>
    	    <treecol id="date" label="Date" flex="1"/>
	    <splitter class="tree-splitter"/>
	  </treecols>
	  <treechildren/>
	</tree>

Splitter resizing und overflow

Das Maß, welches die Größe der Box verändert und was während der Größenveränderung passiert nachdem das Limit erreicht wurde, hängt von der festgelegten Höhe (oder Breite) der Box, welche über ein Attribut, über eine CSS Anweisung (min-height [oder min-width]) oder die wirkliche Höhe der Boxinhalte bestimmt werden kann, und von der An- oder Abwesenheit des eines collapse Attributs des Splitters ab.

Bei:

<vbox></vbox>
<splitter/>
<vbox></vbox>

...wird sich der Splitter nicht bewegen, da kein collapse Attribute für den Splitter festgeleget wurde, was dazu führt das der Splitter zusammenfällt, sobald er gezogen wird.

Bei:

<vbox></vbox>
<splitter/>
<vbox height="500"><vbox height="100"/></vbox>

...kann der Splitter bis auf eine Höhe von 100px der unteren Box gezogen werden, wo er nicht weiter gezogen werden kann (oder zusammenfällt, wenn der Splitter über ein collapse Attribut verfügt).

Bei:

<vbox></vbox>
<splitter/>
<vbox height="500" minheight="200"><vbox height="100"/></vbox>

...kann der Splitter bis auf eine Mindesthöhe von 200px gezogen werden, wo er stoppen wird oder zusammenfällt.

Bei:

<vbox></vbox>
<splitter>
<vbox height="500" style="min-height: 50"><vbox height="100"/></vbox>

...kann der Splitter bis unter einer Höhe von 100px der unteren Box gezogen werden, wodurch das Kindelement überläuft, wenn die Mindesthöhe erreicht wird. Dort stoppt oder fällt der Splitter zusammen. Das sollte auch mit einem minheight Attribut, das kleiner als die wirkliche Höhe ist, möglich sein. (Jedoch funktioniert der Überlauf tatsächlich wegen Bug 513597  nur beim Festlegen von minheight und minwidth Attributen oder bei einer Angabe von min-height oder min-width über CSS).

Verwandte Themen

TBD

Schlagwörter des Dokuments und Mitwirkende

Schlagwörter: 
Mitwirkende an dieser Seite: fscholz, Mrolappe
Zuletzt aktualisiert von: fscholz,