Was ich möchte, ist, dass der grüne Hintergrund direkt hinter dem Text liegt und nicht 100% der Seitenbreite. Hier ist mein aktueller Code:
h1 {
text-align: center;
background-color: green;
}
<h1>The Last Will and Testament of Eric Jones</h1>
Antworten:
Fügen Sie den Text in ein Inline-Element ein , z
<span>
.Wenden Sie dann die Hintergrundfarbe auf das Inline-Element an.
Ein Inline-Element ist so groß wie sein Inhalt, das sollte es für Sie tun.
quelle
h1 { display:inline; }
Option 1
display: table;
Geige
http://jsfiddle.net/J7VBV/293/
Mehr
display: table
Weist das Element an, sich wie eine normale HTML-Tabelle zu verhalten.Mehr dazu bei w3schools , CSS Tricks und hier
Option 2
display: inline-flex;
text-align: center;
auf ElternOption 3
display: flex;
Über
Der wahrscheinlich beliebteste Leitfaden für Flexbox und einer, auf den ich ständig verweise, ist CSS Tricks
Option 4
display: block;
Option 5
::before
Geige
http://jsfiddle.net/J7VBV/457/
Über
Mehr über CSS- Pseudoelemente :: vorher und :: nachher bei CSS Tricks und Pseudoelemente allgemein bei w3schools
Option 6
display: inline-block;
zentrieren mit
position: absolute
undtranslateX
erfordert einen
position: relative
ElternteilÜber
Weitere Informationen zum Zentrieren mit
transform: translate();
(und zum Zentrieren im Allgemeinen) finden Sie in diesem Artikel zu CSS-TricksOption 7
text-shadow:
undbox-shadow:
Geige
https://jsfiddle.net/Hastig/t8L9Ly8o/
Mehr Optionen
Es gibt noch einige andere Möglichkeiten, um dies zu erreichen, indem Sie die verschiedenen Anzeigeoptionen und Zentrierungsmethoden oben kombinieren.
quelle
display: table
Ich hatte keine Ahnung, dass das so mächtig sein könnte, aber ich schätze, dass Sie funktionierende Alternativen bereitgestellt haben.Ein bisschen spät zum Spiel, aber ich dachte, ich würde meine 2 Cent hinzufügen ...
Um das Hinzufügen des zusätzlichen Markups eines inneren Bereichs zu vermeiden, können Sie die
<h1>
Anzeigeeigenschaft vonblock
in änderninline
(fangen Sie an, Sie hätten sichergestellt, dass die Elemente nach den<h1>
Blockelementen sind.HTML
CSS
Ergebnis
JSFIDDLE http://jsfiddle.net/J7VBV/
quelle
Ein sehr einfacher Trick besteht darin, ein
<span>
Tag und eine Hintergrundfarbe hinzuzufügen. Es wird genau so aussehen, wie Sie es wollen.Und CSS
WARUM?
<span>
Tag in einem Inline-Element-Tag, sodass es sich nur über den Inhalt erstreckt, der den Effekt vortäuscht.quelle
BEARBEITEN: Die Antwort unten würde in den meisten Fällen zutreffen. OP erwähnte jedoch später, dass sie nichts anderes als die CSS-Datei bearbeiten konnten. Aber lassen Sie dies hier, damit es für andere von Nutzen sein kann.
Die wichtigste Überlegung, die andere vernachlässigen, ist, dass OP angegeben hat, dass sie den HTML-Code nicht ändern können.
Sie können gezielt auf das zugreifen, was Sie im DOM benötigen, und dann Klassen dynamisch mit Javascript hinzufügen. Dann stylen Sie nach Bedarf.
In einem Beispiel, das ich gemacht habe, habe ich alle
<p>
Elemente mit jQuery als Ziel ausgewählt und es mit einem Div mit einer Klasse von "farbig" umwickelt.Dann zielte ich in meinem CSS auf das
<p>
und gab ihm die Hintergrundfarbe und wechselte zudisplay: inline
Wenn Sie die Anzeige auf Inline einstellen, verlieren Sie einen Teil des Stils, den sie normalerweise erben würde. Stellen Sie also sicher, dass Sie auf das spezifischste Element abzielen und den Container so gestalten, dass er zum Rest Ihres Designs passt. Dies ist nur als Ausgangspunkt gedacht. Vorsichtig verwenden. Arbeitsdemo auf CodePen
quelle
h1 ist ein Blockebenenelement. Sie müssen stattdessen so etwas wie span verwenden, da es sich um ein Inline-Level-Element handelt (dh es erstreckt sich nicht über die gesamte Zeile).
In Ihrem Fall würde ich Folgendes vorschlagen:
style.css
html
quelle
Wie die anderen Antworten vermerken, können Sie a
background-color
zu a hinzufügen<span>
Ihrem Text , damit dies funktioniert.In dem Fall, in dem Sie jedoch haben
line-height
, werden Sie Lücken sehen. Um dies zu beheben, können Siebox-shadow
Ihrer Spanne ein bisschen Wachstum hinzufügen . Sie möchten auch, dassbox-decoration-break: clone;
FireFox es richtig rendert.BEARBEITEN: Wenn Sie in IE11 Probleme mit dem Box-Shadow haben, versuchen Sie, auch eine
outline: 1px solid [color];
für IE hinzuzufügen .So sieht es in Aktion aus:
quelle
Versuchen Sie, den Text-Ausrichtung Zentrum entfernt und das Zentrum
<h1>
oder<div>
in den Text befindet.quelle
kann das HTML5- Markierungs- Tag innerhalb des Absatz- und Überschriften-Tags verwenden.
quelle
Sie können das HTML5-
<mark>
Tag verwenden.HTML:
CSS:
quelle
Probier diese:
Bitte beachten Sie, dass calc nicht mit allen Browsern kompatibel ist :) Ich möchte nur mit der Ausrichtung im ursprünglichen Beitrag übereinstimmen.
https://jsfiddle.net/richardferaro/ssyc04o4/
quelle
Sie müssen die Breite des h1-Tags angeben.
Ihr CSS wird so sein
quelle
HTML
Css
Demo auf Codepen
quelle
box-decoration-break: clone;
, developer.mozilla.org/en-US/docs/Web/CSS/box-decoration-breakHTML
CSS
quelle
quelle