답변:
같은 HTML 구조 불가능, 당신은 구별 할 뭔가가 있어야합니다 Hello
및 How are you
.
내가 사용하는 것이 좋습니다 span
당신이 다음 (단지처럼 블록으로 표시됩니다 것을들 <div>
실제로).
<br>
올바른 마크 업인 경우의 대표적인 예입니다 . 시의 스팸은 "잘못되었습니다".
개행을 유지하는 white-space: pre;
요소를처럼 작동하게하는 데 사용할 수 있습니다 <pre>
. 예:
IE의 경우 IE8 이상에서만 작동합니다.
pre
이다 pre-line
, 이는 포장을 할 수 있습니다.
white-space
CSS 규칙을 트리거하지 않기 때문에 반응이 작동하지 않습니다 .
<br/>
정상적으로 사용 하되 display: none
원하지 않을 때는 숨 깁니다 .이 질문을 찾는 대부분의 사람들은 CSS / 반응 형 디자인을 사용하여 특정 장소에 줄 바꿈이 나타날지 여부를 결정하기를 기대합니다. (그리고 개인에 대한 것이 없습니다 <br/>
)
즉시 명확하지는 않지만 실제로 태그에 적용 display:none
하여 <br/>
태그를 숨길 수 있으므로 시맨틱 BR 태그와 함께 미디어 쿼리를 사용할 수 있습니다.
<div>
The quick brown fox<br />
jumps over the lazy dog
</div>
@media screen and (min-width: 20em)
{
br
{
display: none; // hide the BR tag for wider screens (i.e. disable the line break)
}
}
이 기능은 텍스트를 정확히 두 줄로 나눠야하는 반응 형 디자인에 유용합니다.
display: none
해결책은 가장 적절하고 유용합니다.
display: inline-block; width: 1em;
대신 대신 사용할 수 있습니다 none
.
<br class='foo'>
더 많은 제어가 필요하지만 너무 미쳐 가지 않으면 클래스를 적용 할 수도 있습니다 !
<br/>
그것이하는 일을 잘한다. 바퀴를 재발 명할 필요가 없습니다. 감사!
공백 및 줄 바꿈 처리를 정의하기위한 몇 가지 옵션이 있습니다. 예를 들어 <p>
태그에 내용을 넣을 수 있다면 원하는 것을 쉽게 얻을 수 있습니다.
들어 줄 바꿈이 아닌 공백의 보존 사용 pre-line
(하지 pre
의 등) :
<style>
p {
white-space: pre-line; /* collapse WS, preserve LB */
}
</style>
<p>hello
How are you</p>
다른 동작이 필요한 경우 다음 중 하나를 선택하십시오 (WS = WhiteSpace, LB = LineBreak).
white-space: normal; /* collapse WS, wrap as necessary, collapse LB */
white-space: nowrap; /* collapse WS, no wrapping, collapse LB */
white-space: pre; /* preserve WS, no wrapping, preserve LB */
white-space: pre-wrap; /* preserve WS, wrap as necessary, preserve LB */
white-space: inherit; /* all as parent element */
CSS 의 "\ a" 명령은 캐리지 리턴을 생성합니다. 이것은 HTML이 아닌 CSS이므로 추가 마크 업없이 원하는 것에 더 가깝습니다 .
인용 부호에서, 아래 예는 제목과 소스 링크를 모두 표시하고 둘을 캐리지 리턴 ( "\a"
)으로 구분합니다 .
blockquote[title][cite]:after {
content:attr(title)"\a"attr(cite)
}
display:flex
있으므로이 컨텍스트에서 해킹 됨). 환상적이지 않고 실제로 현대 기술입니다. 정확히 동일한 마크 업을 원하지만 실제로 다르게 반응하는 것이 좋습니다.
"
- 간단한 따옴표를 사용하지 않는 '
당신이이 허용 할 때문에 \a
특수 문자로 구문 분석 얻을 수 있습니다.
CSS에서 코드를 사용하십시오.
p {
white-space: pre-line;
}
이 코드를 사용하면 P 태그 안에 들어가는 모든 CSS가 HTML에서 줄 바꿈이됩니다.
이전에 말한 것을 바탕으로 이것은 순수한 CSS 솔루션입니다.
<style>
span {
display: inline;
}
span:before {
content: "\a ";
white-space: pre;
}
</style>
<p>
First line of text. <span>Next line.</span>
</p>
input type='text', wrapping the input, and then laying the text over it with a wrapper
div . That also requires
포인터 이벤트에 도움이되는이 접근법의 변형을 발견했습니다 :before
.
<pre> <---------------------------------------
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
</pre> <--------------------------------------
또는
<div style="white-space:pre"> <-----------------------------------
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
</div> <-----------------------------------
요소에 줄 바꿈이 생기도록하려면 다음을 지정하십시오.
display:block;
블록 레벨 요소 다음에 부동되지 않은 요소가 다음 줄에 나타납니다. <p> 및 <div>와 같은 많은 요소는 이미 블록 레벨 요소이므로 사용할 수 있습니다.
그러나 이것이 알면 좋지만 실제로는 콘텐츠의 맥락에 더 의존합니다. 예를 들어, CSS를 사용하여 줄 바꿈을 강요하지 않을 것입니다. 의미 적으로 p 태그가 표시하는 텍스트에 가장 적합하기 때문에 <br />가 적합합니다. CSS를 중단하기 위해 더 많은 마크 업이 필요하지 않습니다. 기술적 그렇지 않아 정확히 그래서 당신은 무엇을 사용, 단락,하지만 <인사> 태그가 없습니다. HTMl을 사용하여 콘텐츠를 잘 설명하는 것이 훨씬 중요합니다. 그 후 콘텐츠를 예쁘게 만드는 방법을 알아보십시오.
다음은 나쁜 질문에 대한 나쁜 해결책이지만 문자 그대로 요약을 충족시키는 것입니다.
p {
width : 12ex;
}
p:before {
content: ".";
float: right;
padding-left: 6ex;
visibility: hidden;
}
ex
합니까? p
그리고 e
키보드에 가까운, 즉 내가 부탁 해요 이유되지 않습니다
다른 답변은 상황에 따라 줄 바꿈을 추가하는 좋은 방법을 제공합니다. 그러나 :after
선택기는 링크 목록에 대한 CSS 제어 를 위해 이것을 수행하는 더 좋은 방법 중 하나입니다. 아래에 언급 된 이유로 (및 유사한 것)에 .
다음은 목차를 가정 한 예입니다.
<style type="text/css">
.toc a:after{ content: "\a"; white-space: pre; }
</style>
<span class="toc">
<a href="#a1">Item A1</a> <a href="#a2">Item A2</a>
<a href="#b1">Item B1</a> <a href="#b2">Item B2</a>
</span>
그리고 여기 간단하고 호환되는 Simon_Weaver의 기술이 있습니다. 스타일과 내용을 많이 분리하지 않고 더 많은 코드가 필요하며 사실 이후에 나누기를 추가하려는 경우가 있습니다. 그래도 여전히 오래된 IE의 경우 훌륭한 솔루션입니다.
<style type="text/css">
.toc br{ display: none; } /* comment out for horizontal links */
</style>
<span class="toc">
<a href="#a1">Item A1</a><br/> <a href="#a2">Item A2</a><br/>
<a href="#b1">Item B1</a><br/> <a href="#b2">Item B2</a><br/>
</span>
위 솔루션의 장점에 유의하십시오.
pre
)display:block
의견 )float
또는clear
주위의 내용에 영향을주는 스타일<br/>
또는pre
하드 코딩 된 나누기)a.toc:after
and를<a class="toc">
br
태그를로 설정display: none
도움이되지만 WordsRunTogether로 끝날 수 있습니다. 대신 공백 문자로 바꾸는 것이 더 유용하다는 것을 알았습니다.
HTML :
<h1>
Breaking<br />News:<br />BR<br />Considered<br />Harmful!
</h1>
CSS :
@media (min-device-width: 1281px){
h1 br {content: ' ';}
h1 br:after {content: ' ';}
}
br
을 고려할 수도 있습니다 display: inline-block; width: 1em;
.
방법에 대한 <pre>
태그?
<pre>
하여 줄을 바꿉니다. 규칙적인 공백을 원한다면 어떻게해야합니까?
Vincent Robert와 Joey Adams의 답변이 모두 유효합니다. 그러나 마크 업을 변경하지 않으려면<br />
Javascript를 사용하여 됩니다.
마크 업을 변경하지 않고 CSS에서이를 수행 할 방법이 없습니다.
:after
하거나 할 수 있습니다 :before
.
항상 줄을 끊을 것이기 때문에 중단 점을 사용하고 싶지 않은 것 같습니다. 그 맞습니까? 그렇다면 <br />
텍스트에 중단 점 을 추가하는 방법에 대해서는 다음과 같이 클래스를 제공하십시오 <br class="hidebreak"/>
.<br />
있으므로 특정 너비에서 끊어 지지만 해당 너비 이상으로 인라인으로 유지됩니다.
HTML :
<p>
The below line breaks at 766px.
</p>
<p>
This is the line of text<br class="hidebreak"> I want to break.
</p>
CSS :
@media (min-width: 767px) {
br.hidebreak {display:none;}
}
"Tip: The <br> tag is useful for writing addresses or poems."
하지마 줄 바꿈을 원하면 하나를 사용하십시오.
display: block;
.
<br />
요소는 매우 좋은 이유로 존재합니다. 별도의 단락이기 때문에 줄 바꿈을 원하면 단락을 별도의 단락으로 표시하십시오.