Ich frage mich, welche Optionen man in xhtml 1.0 strikt hat, um eine Linie auf beiden Seiten des Textes wie folgt zu erstellen:
Abschnitt eins ----------------------- Nächster Abschnitt ----------------------- Abschnitt zwei
Ich habe darüber nachgedacht, einige ausgefallene Dinge wie diese zu tun:
<div style="float:left; width: 44%;"><hr/></div>
<div style="float:right; width: 44%;"><hr/></div>
Next section
Oder alternativ, weil das Obige Probleme mit der Ausrichtung hat (sowohl vertikal als auch horizontal):
<table><tr>
<td style="width:47%"><hr/></td>
<td style="vertical-align:middle; text-align: center">Next section</td>
<td style="width:47%"><hr/></td>
</tr></table>
Dies hat auch Ausrichtungsprobleme, die ich mit diesem Durcheinander löse:
<table><tr>
<td style="border-bottom: 1px solid gray; width: 47%"> </td>
<td style="vertical-align:middle;text-align:center" rowspan="2">Next section</td>
<td style="border-bottom: 1px solid gray; width: 47%"> </td>
</tr><tr>
<td> </td>
<td> </td>
</tr></table>
Zusätzlich zu den Ausrichtungsproblemen fühlen sich beide Optionen "fudgy" an, und ich wäre Ihnen sehr dankbar, wenn Sie dies schon einmal gesehen hätten und eine elegante Lösung kennen.
.divider
).Antworten:
Ich weiß nicht, ob dies herausgefunden wurde, aber Flexbox bietet eine ziemliche Lösung:
Eine Demo finden Sie unter http://jsfiddle.net/MatTheCat/Laut6zyc/ .
Heutzutage ist die Kompatibilität nicht so schlecht (Sie können alle alten Flexbox-Syntaxen hinzufügen) und sie verschlechtert sich elegant.
quelle
Wie wäre es mit:
Schauen Sie sich diese JSFiddle an .
Sie können
vw
oder verwenden%
, um es ansprechbar zu machen .quelle
font-size
.Der Weg, dies zu lösen, ohne die Breite und die Hintergrundfarbe zu kennen, ist der folgende:
Struktur
CSS
Beispiel: http://jsfiddle.net/z8Hnz/
Doppelte Linie
Verwenden Sie eine der folgenden Optionen, um eine doppelte Linie zu erstellen:
1) Fester Abstand zwischen den Zeilen
Beispiel: http://jsfiddle.net/z8Hnz/103/
2) Benutzerdefinierter Abstand zwischen den Zeilen
Beispiel: http://jsfiddle.net/z8Hnz/105/
SASS (SCSS) -Version
Basierend auf dieser Lösung habe ich SCSS "mit Farbeigenschaft" hinzugefügt, wenn es jemandem helfen könnte ...
Anwendungsbeispiel:
quelle
Sie können dies mit :: vorher und :: nachher erreichen, ohne die Breite des Containers oder die Hintergrundfarbe zu kennen und um eine bessere Gestaltung der Zeilenumbrüche zu erreichen. Dies kann beispielsweise geändert werden, um Doppellinien, gepunktete Linien usw. zu erstellen.
JSFiddle
CSS- und HTML-Nutzung:
SCSS-Version:
quelle
Versuche dies:
Live-Vorschau auf jsFiddle .
quelle
.divider hr
Breite davon abhängt, wie lang der Text ist. Vorschlag:.divider
und.divider hr
Breiten sollten inem
Einheiten angegeben werden. Um diehr
Breite, Verwendung (.divider
Breite minus Anzahl der Zeichen) / 2.Ich bin gerade auf dasselbe Problem gestoßen. Hier ist eine Möglichkeit, es zu lösen:
Es funktioniert, ohne einen Hintergrund für das Textelement festzulegen, dh es sieht gut aus, unabhängig davon, welcher Hintergrund dahinter steht.
Sie können es hier ausprobieren: http://jsfiddle.net/88vgS/
quelle
AKTUALISIEREN: Dies funktioniert nicht mit HTML5
Weitere Techniken finden Sie in dieser Frage: CSS-Herausforderung. Kann ich dies tun, ohne mehr HTML einzuführen?
Ich habe
line-height:0
den Effekt in der Kopfzeile meiner Website guerilla-alumnus.com erstelltEine andere gute Methode ist eingeschaltet http://robots.thoughtbot.com/
Er verwendet ein Hintergrundbild und schwebt, um einen coolen Effekt zu erzielen
quelle
quelle
Wenn Sie CSS verwenden können und bereit sind, das veraltete
align
Attribut zu verwenden, funktioniert eine gestaltete Feldmenge / Legende:Der beabsichtigte Zweck eines Feldsatzes besteht darin, Formularfelder logisch zu gruppieren. Wie Willoler betonte, funktioniert ein
text-align: center
Stil fürlegend
Elemente nicht.align="center"
ist veraltetes HTML, sollte aber den Text in allen Browsern richtig zentrieren.quelle
<legend>
die Anzeigeeigenschaften einesblock
oder einesinline-block
Elements annimmt , da es aufgefüllt und mittext-align:center
legend
Gestaltung des Elementsalign="center"
die einzige Lösung, die ich finden konnte, die a zuverlässig verlagertlegend
.Bootstrap-Raster:
HTML:
CSS:
quelle
vertical-center
Klasse existiert nicht mehr in Bootstrap (4.3.1). Könnten Sie bitte Ihre Antwort aktualisieren, um zu sagenalign-items-center
?Sie können einfach die relative Position verwenden und eine Höhe für das übergeordnete Element festlegen
quelle
Hier ist eine einfache Lösung nur mit CSS, keine Hintergrundtricks ...
HTML:
Beispiel Geige: https://jsfiddle.net/0Lkj6wd3/
quelle
Böser Hack ...
quelle
Ich habe einen 2 Jahre alten Beitrag zusammengestellt, aber hier ist, wie ich mit nur einem Element und CSS an diese Situationen herangehe.
Und hier ist eine Geige zum Auschecken: http://jsfiddle.net/sRhBc/ (zufälliges Bild von Google für die Grenze).
Der einzige Nachteil dieses Ansatzes ist, dass er IE7 nicht unterstützt.
quelle
Benutz einfach
quelle
Woohoo mein erster Beitrag, obwohl dieser ein Jahr alt ist. Um die Probleme mit der Hintergrundfärbung bei Wrappern zu vermeiden, können Sie den Inline-Block mit hr verwenden (das hat niemand explizit gesagt). Die Textausrichtung sollte korrekt zentriert sein, da es sich um Inline-Elemente handelt.
quelle
Ich benutze eine
h1
mit einer Spannweite in der Mitte.HTML-Beispiel:
CSS-Beispiel:
So einfach ist das.
quelle
span
können Sie auch a verwendendiv
. Es dient demselben Zweck, außer dass es natürlich ein Blockelement ist. :)h1
ist ein Inline-Element.span
ist schön zum Verpacken von Sachen, aber der Grund, warum ichdiv
in diesem Fall einen bevorzuge , ist, dass Youri CSS verwendet, um dasspan
zu setzendisplay:block;
. Ich sehe keinen Sinn darin, ein Inline-Element in ein Blockelement zu verwandeln, wenn geeignete Blockelemente (div
) verfügbar sind.h1
einfügen sollten , sondern tatsächlich ein BLOCK-Element. Entschuldigung für die Verwirrung. Trotzdem sehe ich keinen Sinn darin,span
ein Blockelement zu machen, aber fair genug.Mit Blick auf oben habe ich geändert zu:
CSS
HTML
Scheint gut zu funktionieren.
quelle
Nehmen Sie die Lösung von @ kajic und fügen Sie das Styling in CSS ein:
Dann CSS (aber es hängt von CSS3 bei der Verwendung des n-ten Selektors ab):
Prost.
(PS Auf tbody und tr fügen Chrome, IE und Firefox zumindest automatisch tbody und tr ein, weshalb mein Beispiel, wie das von @ kajic, diese nicht enthielt, um die Dinge im erforderlichen HTML-Markup kürzer zu halten. Diese Lösung wurde mit den neuesten Versionen von IE, Chrome und Firefox ab 2013 getestet).
quelle
DEMO-SEITE
HTML
CSS
quelle
Dies hat bei mir funktioniert und erfordert keine Hintergrundfarbe hinter dem Text, um eine Grenzlinie auszublenden, sondern verwendet das tatsächliche hr-Tag. Sie können mit den Breiten herumspielen, um verschiedene Größen von Stundenlinien zu erhalten.
quelle
Ich habe eine Geige erstellt , die FlexBox verwendet und Ihnen auch verschiedene HR-Stile bietet (doppelte Linie, Symbole in der Mitte der Linie, Schlagschatten, Einschub, gestrichelt usw.).
CSS
HTML
Oder hier ist eine interaktive Geige: http://jsfiddle.net/mpyszenj/439/
quelle
Sie können versuchen, ein
fieldset
Element zu erstellen und das Element "legend" (Ihr Text "nächster Abschnitt") mit nurborder-top
set an der Mitte des Felds auszurichten . Ich bin mir nicht sicher, wie eine Legende gemäß dem Feldsatzelement positioniert ist. Ich kann mir vorstellen, dass es einfach istmargin: 0px auto
, den Trick zu machen.Beispiel:
quelle
Sie können dies ohne erreichen
<hr />
. Semantisch sollte das Design mit CSS erfolgen, in diesem Fall ist dies durchaus möglich.quelle
Es gibt immer das gute alte FIELDSET
quelle
html
CSS
quelle
Sie können einen Wrapper-Block mit einem geeigneten Hintergrundbild erstellen (und auch eine Hintergrundfarbe für Ihren zentrierten Textblock festlegen).
quelle
CSS
HTML
Sie können die Breite in den Klassen "Seite" und "Mitte" basierend auf der Länge Ihres Textes im Tag "span" ändern. Stellen Sie sicher, dass die Breite der "Mitte" plus das Zweifache der Breite der "Seite" 100% entspricht.
quelle
Reaktionsschneller, transparenter Hintergrund, variable Höhe und Stil des Teilers, variable Position des Texts, einstellbarer Abstand zwischen Teiler und Text. Kann auch mehrmals mit verschiedenen Selektoren für mehrere Teilerstile in demselben Projekt angewendet werden.
SCSS unten.
Markup (HTML):
CSS :
Ohne
text-position
es wird standardmäßig zentriert.Demo:
Code-Snippet anzeigen
Und SCSS , um es schnell zu ändern:
hier fummeln .
quelle
quelle