CSS 내용 속성을 사용하여 요소 앞에 줄 바꿈 태그를 삽입하는 방법을 본 것 같습니다. 분명히 이것은 작동하지 않습니다.
#restart:before { content: '<br/>'; }
그러나 당신은 이것을 어떻게합니까?
CSS 내용 속성을 사용하여 요소 앞에 줄 바꿈 태그를 삽입하는 방법을 본 것 같습니다. 분명히 이것은 작동하지 않습니다.
#restart:before { content: '<br/>'; }
그러나 당신은 이것을 어떻게합니까?
답변:
유사 요소 생성 컨텐츠에서 \A 이스케이프 시퀀스 를 사용하는 것이 가능 합니다. CSS2 사양에서 자세히 읽어보십시오 .
#restart:before { content: '\A'; }
또한 추가해야 할 수 있습니다 white-space:pre;로 #restart.
참고 : \A줄의 끝을 나타냅니다.
ps 또 다른 치료법
:before { content: ' '; display: block; }
#restart또한 반드시 있어야 한다는 점에 주목 해야합니다.display: inline;
:before { content: ' '; display: block; }대신 사용 했다.
inline-block요소 와 작동하지 않습니다 . 그들은 단순히 다음 줄로 가지 않을 것입니다. 해결책은 실제로 <div></div>HTML에 공백 을 추가하는 것이 었습니다 .
경우 #restart인라인 요소 (예 <span>, <em>등) 당신은 사용하여 블록 요소로를 설정할 수 있습니다 :
#restart { display: block; }
이것은 요소 앞뒤에 줄 바꿈을 보장하는 효과가 있습니다.
줄 바꿈 같은 역할을 무엇인가를 삽입 CSS를 할 수있는 방법이 없습니다 유일한 요소 전과 후가 아니라이. 다른 변경의 부작용으로 float: left, 또는 clear: left플로팅 된 요소 이후에 줄 바꿈을 일으킬 수도 있고 , 심지어 미친 것처럼 보일 수도 #restart:before { content: 'a load of non-breaking spaces'; }있지만 일반적인 경우에는 좋은 생각이 아닙니다.
float: left그들이에 맞는 수축과 새 줄을에 시작하면 요소는 일부 사용 될 수 있습니다. 그렇지 않으면 원하는 것이 불가능할 수 있습니다.
이것은 나를 위해 작동합니다 :
#restart:before {
content: ' ';
clear: right;
display: block;
}
다음 CSS가 나를 위해 일했습니다.
/* newline before element */
#myelementId:before{
content:"\a";
white-space: pre;
}
content: 'bar: \a' attr(data-description);
원하는 방식으로 CSS를 통해 생성 된 컨텐츠를 추가 할 수없는 두 가지 이유가 있습니다.
생성 된 컨텐츠는 컨텐츠를 승인하고 마크 업하지 않습니다. 마크 업은 평가되지 않고 표시 만됩니다.
:before및 :after생성 콘텐츠는 너무도 공백이나 편지를 추가하고로 정의하는 요소 내에 추가 block작동하지 않습니다.
::outside원하는 것을 할 수 있는 의사 요소가 있습니다. 그러나 브라우저를 지원하지 않는 것 같습니다. (여기에서 더 읽으십시오 : http://www.w3.org/TR/css3-content/#wrapping )
가장 좋은 방법은 여기에 약간의 jQuery를 사용하는 것입니다.
$('<br />').insertBefore('#restart');
그렇습니다. 완전히 할 수는 있지만 완전히 해킹입니다 (사람들은 그러한 코드 작성에 대한 더러운 표정을 줄 수 있습니다).
HTML은 다음과 같습니다.
<div>lorem ipdum dolor sit <span id="restart">amit e pluribus unum</span></div>
CSS는 다음과 같습니다.
#restart:before { content: 'hiddentext'; font-size:0; display:block; line-height:0; }
바이올린은 다음과 같습니다. http://jsfiddle.net/AprNY/
나는 : before로 나누기를 삽입하는 것에 전혀 운이 없었습니다. 내 해결책은 클래스가있는 범위를 추가하고 범위 안에 휴식을 취하는 것입니다. 그런 다음 표시 할 클래스를 변경하십시오. none; 또는 표시 : 필요에 따라 차단하십시오.
HTML
<div>
<span class="ItmQty"><br /></span>
<span class="otherclass">
<asp:Label ID="QuantityLabel" runat="server" Text="Qty: ">
</asp:Label>
</span>
<div class="cartqty">
<asp:TextBox ID="QuantityTextBox" runat="server" Text='<%# Bind("Quantity","{0:#}") %>' Width="50"></asp:TextBox>
</div>
</div>
CSS
@media only screen and (min-width: 854px)
{
.ProjItmQty
{
display: block;
clear: both;
}
}
@media only screen and (min-width: 1003px)
{
.ProjItmQty
{
display: none;
}
}
도움이 되었기를 바랍니다.
body * { line-height: 127%; }
p:after { content: "\A "; display: block; white-space: pre; }
https://www.w3.org/TR/CSS2/generate.html#x18 Content Proerty, "newlines"... p는 부모 블록 내부의 p 끝에 마진이나 패딩을 추가하지 않습니다 (예 : body›section› 피). "\ A"줄 바꿈은 줄 간격을 줄이며 그와 동등한 스타일의 줄 높이입니다.
a를 margin-top:20px;에 #restart. 또는 당신이 느끼는 크기 차이가 적절합니다. 인라인 요소 인 경우 추가해야 display:block하거나 이전 버전의 IE에서는 작동 display:inline-block하지 않는다고 생각 inline-block합니다.
어떻게 든 수동으로 줄 바꿈을 추가하는 대신 border-bottom: 1px solid #ff0000요소의 테두리를 가져 와서 border-<side>지정한면 만 렌더링하는 구현 을 수행 할 수 있습니다 .
<br>아닌 등가물을 요구했다 <hr>.