Ich arbeite an einer Site, in die Zeilenumbrüche eingefügt sind <br>
in einigen Überschriften . Angenommen, ich kann den Quell-HTML-Code nicht bearbeiten. Gibt es eine Möglichkeit, diese Unterbrechungen mit CSS zu ignorieren?
Ich bin mobil und optimiere die Website, sodass ich JavaScript nicht wirklich verwenden möchte.
br
Elementen nicht möglich ist ! Die Gründe werden bereits mehrfach erklärt! In meiner Antwort habe ich Ihnen eine alternative Methode gezeigt, um das Ziel auf gültige, robuste und browserübergreifende Weise zu erreichen.Antworten:
Mit CSS können Sie die br-Tags "ausblenden" und sie haben keine Auswirkung:
Wenn Sie nur einige innerhalb eines bestimmten Überschriftentyps ausblenden möchten, machen Sie Ihr CSS einfach spezifischer.
quelle
Hinweis: Diese Lösung funktioniert nur für Webkit-Browser, die Pseudoelemente fälschlicherweise auf selbstschließende Tags anwenden.
Als Ergänzung zu den obigen Antworten ist anzumerken, dass in einigen Fällen ein Leerzeichen eingefügt werden muss, anstatt nur zu ignorieren
<br>
:Zum Beispiel werden sich die obigen Antworten drehen
zu
wie ich überprüft hatte, während ich versuchte, meinen wöchentlichen Veranstaltungskalender zu formatieren. Ein Leerzeichen nach "Montag" wird bevorzugt eingefügt. Dies kann einfach durch Einfügen von Folgendem in das CSS erfolgen:
Das wird machen
aussehen wie
Sie können das
content
Attribut in ändernbr:after
,', '
wenn Sie durch Kommas trennen möchten, oder alles, was Sie möchten, in' '
das Trennzeichen einfügen! Apropossieht ordentlich aus ;-)
Siehe hier für eine Referenz.
Wie in den obigen Antworten können Sie dies tun, wenn Sie es tag-spezifisch machen möchten. Wenn Sie möchten, dass diese Eigenschaft für ein Tag funktioniert
<h3>
, fügen Sie einfachh3
jeweils ein vorbr
und hinzubr:after
.Es funktioniert am allgemeinsten für ein Pseudo-Tag.
quelle
<br />
eines ist Element , das ein Pseudoelement nicht an Arbeit soll . Undcontent
funktioniert nur mit Pseudoelementen.Wenn Sie im Stil hinzufügen
Dann wird das funktionieren. Ich bin mir nicht sicher, ob es in älteren IE-Versionen funktioniert.
quelle
So mache ich es:
quelle
Sie können
span
Elemente anstelle von verwenden,br
wenn die Leerraummethode funktionieren soll, da dies von Pseudoelementen abhängt, die für ersetzte Elemente "nicht definiert" sind.HTML
CSS
DEMO
Der Zeilenumbruch wird einfach durch Einstellen des entsprechenden Span-Elements auf erreicht
display:block
.Durch die Verwendung von IDs und / oder Klassen in Ihrem HTML-Markup können Sie problemlos jedes einzelne oder jede Kombination von Span-Elementen per CSS ausrichten oder CSS-Selektoren wie verwenden
nth-child()
.Sie können also z. B. verschiedene Haltepunkte definieren, indem Sie Medienabfragen für ein ansprechendes Layout verwenden.
Sie können Klassen auch einfach mit Javascript (jQuery) hinzufügen / entfernen / umschalten.
Der "Vorteil" dieser Methode ist ihre Robustheit - funktioniert in jedem Browser, der Pseudoelemente unterstützt (siehe: Kann ich verwenden - CSS-generierter Inhalt ).
Alternativ ist es auch möglich, einen Zeilenumbruch über Pseudoelemente hinzuzufügen:
DEMO
quelle
<br>
, zumindest nicht browserübergreifend, nicht möglich ist . Also habe ich eine Alternative gezeigt.<br>
Elemente gelöst wird (vermutlich durch Leerzeichen ersetzt). Das ganze Problem, mit dem sich die Frage als Ganzes befasst, ist, wenn man nicht die Kontrolle über das HTML hat ; kompliziert durch die zusätzliche Bedingung, dass sie wirklich kein Javascript (aus welchem Grund auch immer) verwenden wollten, um es zu lösen.<br>
mit CSS zu ignorieren ?" wurde bereits beantwortet. Und nur wenn Sie die Kontrolle über den HTML-Code haben, heißt das nicht, dass Sie ihn ändern möchten. Beim reaktionsschnellen Design ist es jedoch häufig wünschenswert, die Kontrolle über Zeilenumbrüche (außer dem automatischen Zeilenumbruch) zu haben. In solchen Fällen ist die Methode, Leerzeichen zu haben oder nicht durch CSS (Medienabfragen) gesteuert zu werden, mindestens "eine Methode", um das Ziel zu erreichen.Für mich sieht das besser aus:
Some text, Some text, Some text
quelle
Dafür können Sie einfach so vorgehen:
und wenn es sich in einem PRE-Tag befindet, können Sie und wenn Sie möchten, dass sich das PRE-Tag wie ein reguläres Blockelement verhält, können Sie dieses CSS verwenden:
Oder Sie können dem Stil von Aneesh Karthik C folgen wie:
Ich denke du hast es verstanden
quelle
::before
und::after
zumindest "undefiniert" für "ersetzte Elemente" mögenbr
. Es wird also niemals ein konsistentes Browserverhalten geben, auf das man sich verlassen kann! Das einzige, was Sie tun können, ist, keine Pseudoelemente mit diesen Elementen zu verwenden!Um dieses Problem für Firefox und Opera mithilfe des Aneesh Karthik C- Ansatzes zu lösen, müssen Sie gemäß Ihrer Frage das Attribut "float" right "hinzufügen.
Überprüfen Sie das Beispiel hier. Dieses CSS funktioniert in Firefox (26.0), Opera (12.15), Chrome (32.0.1700) und Safari (7.0).
Ich hoffe das wird deine Frage beantworten !!
quelle
br
wird bereits beantwortet (mehr als einmal). Die Frage betrifft bedingte Leerzeichen . Und da dies die Verwendung von Pseudoelementen erfordert, funktioniert es nicht mitbr
.br
ist einfach Unsinn! Und ich kann immer noch nicht sehen, was der Rest Ihrer Antwort mit "bedingten Leerzeichen und Linienbrekas" zu tun hat? Vielleicht können Sie es bitte weiter erläutern?br
Elemente haben. Wenn Sie diese entfernen, werden Sie feststellen, dass das Hinzufügen von Speicherplatz nicht funktioniert.br
Elemente mit Leerzeichen vor und nach dem ersten und letzten. Es sind diese Bereiche, die den Anschein erwecken, dass Ihre Lösung funktioniert, obwohl dies nicht der Fall ist. Wenn Sie diese Leerzeichen entfernen, wie ich es in meinem überarbeiteten Beispiel getan habe, können Sie feststellen, dass Ihre Lösung in Firefox überhaupt kein Leerzeichen hinzufügt.Obwohl diese Frage bereits gelöst zu sein scheint, hat die akzeptierte Antwort das Problem für mich in Firefox nicht gelöst. Firefox (und möglicherweise IE, obwohl ich es nicht ausprobiert habe) überspringt Leerzeichen, während der Inhalt des Tags "content" gelesen wird. Ich verstehe zwar vollkommen, warum Mozilla das tun würde, aber es bringt einige Probleme mit sich. Die einfachste Problemumgehung, die ich gefunden habe, bestand darin, nicht unterbrechbare Leerzeichen anstelle von regulären Leerzeichen zu verwenden, wie unten gezeigt.
Schau mal rein .
quelle
before
Element nicht auf einembr
? Sie haben nicht einmal einebr
in Ihrem HTML auf der Geige. Ein Teil des Problems ist, dassbefore
esbr
in einigen Browsern nicht funktioniert .Ja, das können Sie ignorieren
<br>
. Dies ist möglicherweise erforderlich, insbesondere bei reaktionsschnellem Design, bei dem Sie Pausen für mobile Geräte entfernen müssen.HTML
CSS für mobile Beispiele
Schauen Sie sich diesen Codepen an:
https://codepen.io/fluidbrush/pen/pojGQyM
quelle
Sie können es einfach in einen Kommentar umwandeln.
Oder Sie können dies tun:
Aber wenn du es nicht willst, warum legst du das dort hin?
quelle