Ein Rahmen wird immer die gesamte Länge des umschließenden Rechtecks haben (die Höhe des Elements plus seiner Füllung). Er kann nicht gesteuert werden, außer die Höhe des Elements anzupassen, auf das er angewendet wird. Wenn alles, was Sie ist ein vertikaler Teiler benötigen, können Sie konnte Verwendung:
<div id="left">
content
</div>
<span class="divider"></span>
<div id="right">
content
</div>
mit CSS:
span {
display: inline-block;
width: 0;
height: 1em;
border-left: 1px solid #ccc;
border-right: 1px solid #ccc;
}
Demo at JS Fiddle, stellen Sie die Höhe der span.container
die Grenze 'Höhe' einzustellen.
Oder pseudo-Elemente zu verwenden (::before
oder ::after
), angesichts der folgenden HTML:
<div id="left">content</div>
<div id="right">content</div>
Die folgende CSS fügt ein Pseudoelement vor jedem div
Element, das die benachbarten Geschwister eines anderen div
Elements:
div {
display: inline-block;
position: relative;
}
div + div {
padding-left: 0.3em;
}
div + div::before {
content: '';
border-left: 2px solid #000;
position: absolute;
height: 50%;
left: 0;
top: 25%;
}
JS Fiddle demo.
die Geige hat AWOL gegangen – Neil
besser zu nutzen: nach –
@ Scott: true, ist der einzige Grund, warum sie nicht ursprünglich wurden verwendet, ist, weil ich nicht glaube, ich war bewusst der ':: before' oder' :: after' Pseudo-Elemente zurück. Ich werde versuchen, diese Idee zu überarbeiten, sobald ich wieder an einem Computer bin und nicht an einem mobilen Gerät. –