내가 원하는 것은 녹색 배경이 텍스트 바로 뒤에 있고 페이지 너비의 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>
답변:
텍스트 를 a와 같은 인라인 요소 에 넣습니다 <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 및 here 에 대한 자세한 내용
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 트릭 일반과 의사 요소에서 W3 스쿨
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>
약
더와 함께 중심에 transform: translate();
에 (그리고 일반적으로 중심) 이 CSS 트릭 기사
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>
display 속성을에서 block
로 변경할 수 있습니다 inline
(catch는 <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를 사용하여 모든 요소를 타겟팅하고 '색'클래스가있는 div로 래핑했습니다.
$( "p" ).wrap( "<div class='colored'></div>" );
그런 다음 CSS에서 대상을 지정하고 <p>
배경색을 지정하고display: inline
.colored p {
display: inline;
background: green;
}
디스플레이를 인라인으로 설정하면 일반적으로 상속되는 스타일 중 일부가 손실됩니다. 따라서 가장 구체적인 요소를 대상으로하고 나머지 디자인에 맞게 컨테이너의 스타일을 지정하십시오. 이것은 작업 시작점을 의미합니다. 신중하게 사용하십시오. CodePen 실무 데모
다른 답변에서 알 수 있듯이 텍스트 주위 에 a 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>
단락 및 제목 태그 내에서 html5 마크 태그를 사용할 수 있습니다 .
<p>lorem ipsum <mark>Highlighted Text</mark> dolor sit.</p>
이거 한번 해봐:
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/en-US/docs/Web/CSS/box-decoration-break
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>