私が欲しいのは、緑の背景がテキストのすぐ後ろにあり、ページ幅の100%ではないことです。これが私の現在のコードです:
h1 {
text-align: center;
background-color: green;
}
<h1>The Last Will and Testament of Eric Jones</h1>
私が欲しいのは、緑の背景がテキストのすぐ後ろにあり、ページ幅の100%ではないことです。これが私の現在のコードです:
h1 {
text-align: center;
background-color: green;
}
<h1>The Last Will and Testament of Eric Jones</h1>
回答:
テキストをのようなインライン要素に入れます<span>
。
<h1><span>The Last Will and Testament of Eric Jones</span></h1>
そして、インライン要素に背景色を適用します。
h1 {
text-align: center;
}
h1 span {
background-color: green;
}
インライン要素はそのコンテンツと同じ大きさなので、それでうまくいくはずです。
h1 { display:inline; }
display: table;
h1 {
display: table; /* keep the background color wrapped tight */
margin: 0px auto 0px auto; /* keep the table centered */
padding:5px;font-size:20px;background-color:green;color:#ffffff;
}
<h1>The Last Will and Testament of Eric Jones</h1>
バイオリン
http://jsfiddle.net/J7VBV/293/
もっと
display: table
要素に通常のHTMLテーブルのように動作するように指示します。
w3schools、CSS Tricksとそれについての詳細はこちら
display: inline-flex;
text-align: center;
親に必要.container {
text-align: center; /* center the child */
}
h1 {
display: inline-flex; /* keep the background color wrapped tight */
padding:5px;font-size:20px;background-color:green;color:#ffffff;
}
<div class="container">
<h1>The Last Will and Testament of Eric Jones</h1>
</div>
display: flex;
.container {
display: flex;
justify-content: center; /* center the child */
}
h1 {
display: flex;
/* margin: 0 auto; or use auto left/right margin instead of justify-content center */
padding:5px;font-size:20px;background-color:green;color:#ffffff;
}
<div class="container">
<h1>The Last Will and Testament of Eric Jones</h1>
</div>
約
おそらくFlexboxで最も人気のあるガイドであり、私が絶えず参照しているガイドはCSS Tricksです。
display: block;
.container {
display: flex;
justify-content: center; /* centers child */
}
h1 {
display: block;
padding:5px;font-size:20px;background-color:green;color:#ffffff;
}
<div class="container">
<h1>The Last Will and Testament of Eric Jones</h1>
</div>
::before
h1 {
display: flex; /* set a flex box */
justify-content: center; /* so you can center the content like this */
}
h1::before {
content:'The Last Will and Testament of Eric Jones'; /* the content */
padding: 5px;font-size: 20px;background-color: green;color: #ffffff;
}
<h1></h1>
バイオリン
http://jsfiddle.net/J7VBV/457/
約
その他のCSS擬似要素::前と::の後、約CSSのトリック一般的と擬似要素でW3Schoolsの
display: inline-block;
中心position: absolute
とtranslateX
position: relative
親が必要
.container {
position: relative; /* required for absolute positioned child */
}
h1 {
display: inline-block; /* keeps container wrapped tight to content */
position: absolute; /* to absolutely position element */
top: 0;
left: 50%; /* part1 of centering with translateX/Y */
transform: translateX(-50%); /* part2 of centering with translateX/Y */
white-space: nowrap; /* text lines will collapse without this */
padding:5px;font-size:20px;background-color:green;color:#ffffff;
}
<h1>The Last Will and Testament of Eric Jones</h1>
約
このCSSトリックの記事でのtransform: translate();
(そして一般的には)中央揃えの詳細
text-shadow:
そして box-shadow:
h1, h2, h3, h4, h5 {display: table;margin: 10px auto;padding: 5px;font-size: 20px;color: #ffffff;overflow:hidden;}
h1 {
text-shadow: 0 0 5px green,0 0 5px green,
0 0 5px green,0 0 5px green,
0 0 5px green,0 0 5px green,
0 0 5px green,0 0 5px green;
}
h2 {
text-shadow: -5px -5px 5px green,-5px 5px 5px green,
5px -5px 5px green,5px 5px 5px green;
}
h3 {
color: hsla(0, 0%, 100%, 0.8);
text-shadow: 0 0 10px hsla(120, 100%, 25%, 0.5),
0 0 10px hsla(120, 100%, 25%, 0.5),
0 0 10px hsla(120, 100%, 25%, 0.5),
0 0 5px hsla(120, 100%, 25%, 1),
0 0 5px hsla(120, 100%, 25%, 1),
0 0 5px hsla(120, 100%, 25%, 1);
}
h4 { /* overflow:hidden is the key to this one */
text-shadow: 0px 0px 35px green,0px 0px 35px green,
0px 0px 35px green,0px 0px 35px green;
}
h5 { /* set the spread value to something larger than you'll need to use as I don't believe percentage values are accepted */
box-shadow: inset 0px 0px 0px 1000px green;
}
<h1>The First Will and Testament of Eric Jones</h1>
<h2>The 2nd Will and Testament of Eric Jones</h2>
<h3>The 3rd Will and Testament of Eric Jones</h3>
<h4>The Last Will and Testament of Eric Jones</h4>
<h5>The Last Box and Shadow of Eric Jones</h5>
バイオリン
https://jsfiddle.net/Hastig/t8L9Ly8o/
上記のさまざまな表示オプションとセンタリング方法を組み合わせて、これを実行する方法は他にもいくつかあります。
display: table
がそれほど強力である可能性があるとは思いもしませんでしたが、代替案が提供されたことを感謝します。
ゲームには少し遅れますが、2セント追加すると思いました...
内部スパンの余分なマークアップを追加しないようにするには、<h1>
表示プロパティをからblock
に変更しますinline
(キャッチは、<h1>
ブロック要素の後に要素があることを確認することです。
HTML
<h1>
The Last Will and Testament of
Eric Jones</h1>
<p>Some other text</p>
CSS
h1{
display:inline;
background-color:green;
color:#fff;
}
結果
JSFIDDLE
http://jsfiddle.net/J7VBV/
他の人が無視している主な考慮事項は、OPがHTMLを変更できないと述べていることです。
DOMで必要なものをターゲットにして、JavaScriptでクラスを動的に追加できます。その後、必要に応じてスタイルを設定します。
私が作った例では、<p>
jQueryですべての要素をターゲットにして、 "colored"クラスのdivでラップしました
$( "p" ).wrap( "<div class='colored'></div>" );
次に、私のCSSでをターゲットに<p>
して、背景色を指定して、display: inline
.colored p {
display: inline;
background: green;
}
表示をインラインに設定すると、通常継承するスタイリングの一部が失われます。したがって、最も具体的な要素をターゲットにして、残りのデザインに合うようにコンテナをスタイルするようにしてください。これは、機能する開始点としてのみ意図されています。慎重に使用してください。CodePenの作業デモ
他の回答が注記しbackground-color
ている<span>
ように、テキストの周りにを追加してこれを機能させることができます。
あなたが持っている場合でも、あなたはline-height
ギャップを見るでしょう。これを修正box-shadow
するには、スパンを少し増やしてを追加できます。またbox-decoration-break: clone;
、FireFoxで適切にレンダリングする必要があります。
編集:IE11でボックスシャドウの問題が発生しoutline: 1px solid [color];
ている場合は、IEにも同様にを追加してみてください。
実際の動作は次のとおりです。
.container {
margin: 0 auto;
width: 400px;
padding: 10px;
border: 1px solid black;
}
h2 {
margin: 0;
padding: 0;
font-family: Verdana, sans-serif;
text-transform: uppercase;
line-height: 1.5;
text-align: center;
font-size: 40px;
}
h2 > span {
background-color: #D32;
color: #FFF;
box-shadow: -10px 0px 0 7px #D32,
10px 0px 0 7px #D32,
0 0 0 7px #D32;
box-decoration-break: clone;
}
<div class="container">
<h2><span>A HEADLINE WITH BACKGROUND-COLOR PLUS BOX-SHADOW :3</span></h2>
</div>
テキスト整列センターを削除してみて、中央<h1>
または<div>
テキストが存在します。
h1 {
background-color:green;
margin: 0 auto;
width: 200px;
}
段落および見出しタグ内でhtml5 マークタグを使用できます。
<p>lorem ipsum <mark>Highlighted Text</mark> dolor sit.</p>
HTML5 <mark>
タグを使用できます。
HTML:
<h1><mark>The Last Will and Testament of Eric Jones</mark></h1>
CSS:
mark
{
background-color: green;
}
これを試してください:
h1 {
text-align: center;
background-color: green;
visibility: hidden;
}
h1:after {
content:'The Last Will and Testament of Eric Jones';
visibility: visible;
display: block;
position: absolute;
background-color: inherit;
padding: 5px;
top: 10px;
left: calc(30% - 5px);
}
calcはすべてのブラウザに対応しているわけではないことに注意してください:)元の投稿の配置と一致させたいだけです。
HTML
<h1>
<span>
inline text<br>
background padding<br>
with box-shadow
</span>
</h1>
CSS
h1{
font-size: 50px;
padding: 13px; //Padding on the sides so as not to stick.
span {
background: #111; // background color
color: #fff;
line-height: 1.3; //The height of indents between lines.
box-shadow: 13px 0 0 #111, -13px 0 0 #111; // Indents for each line on the sides.
}
}
box-decoration-break: clone;
、developer.mozilla.org
HTML
<h1 class="green-background"> Whatever text you want. </h1>
CSS
.green-background {
text-align: center;
padding: 5px; /*Optional (Padding is just for a better style.)*/
background-color: green;
}
<h1 style="display:inline-block;text-align: center;background : red;">The Last Will and Testament of Eric Jones</h1>