输出:
你好 你好吗
码:
<p>hello <br> How are you </p>
没有相同的输出,如何实现<br>
?
输出:
你好 你好吗
码:
<p>hello <br> How are you </p>
没有相同的输出,如何实现<br>
?
Answers:
使用相同的HTML结构是不可能的,您必须有一些区别Hello
和How are you
。
我建议使用span
s,然后将其显示为块(就像<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
(not 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”命令生成回车符。这是CSS,而不是HTML,因此它将更接近您想要的:没有额外的标记。
在blockquote中,下面的示例显示标题和源链接,并用回车符("\a"
)分隔两者:
blockquote[title][cite]:after {
content:attr(title)"\a"attr(cite)
}
display:flex
,因此在这种情况下是hack)。它并不花哨,实际上只是一种现代技术。如果您希望使用完全相同的标记,但实际上要做出不同的反应,那么这就是方法。
"
–请勿使用简单的引号,'
因为您希望允许将\a
其解析为特殊字符。
在CSS上使用代码
p {
white-space: pre-line;
}
使用此代码css,P标记内的每个输入都将成为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强制换行。<br />是适当的,因为在语义上p标记最适合您显示的文本。仅仅为了将CSS挂起就不需要更多标记。从技术上讲,它不完全是一个段落,但是没有<greeting>标记,因此请使用已有的标记。用HTMl很好地描述您的内容更为重要-在拥有内容之后,再弄清楚如何使其看起来更漂亮。
这是一个错误问题的不好解决方案,但实际上符合简要要求:
p {
width : 12ex;
}
p:before {
content: ".";
float: right;
padding-left: 6ex;
visibility: hidden;
}
ex
是什么?p
而e
不是说关闭键盘上,这就是为什么我要问
ex
定义为“等于第一个可用字体的x高度。”
其他答案根据情况提供了一些添加换行符的好方法。但应注意的是,: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
和的<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>
这样就可以换行。如果要使用常规空格怎么办?
您需要在中声明内容<span class="class_name"></span>
。在它之后,行将被中断。
\A
表示换行符。
.class_name::after {
content: "\A";
white-space: pre;
}
文森特·罗伯特(Vincent Robert)和乔伊·亚当斯(Joey Adams)的答案都是有效的。但是,如果您不想更改标记,则只需插入一个<br />
使用javascript。
在CSS中没有更改标记就无法做到这一点。
:after
或:before
这样做。
万一这可以帮助某人...
您可以这样做:
<p>This is an <a class="on-new-line">inline link</a>?</p>
有了这个CSS:
a.on-new-line:before {
content: ' ';
font-size:0;
display:block;
line-height:0;
}
.on-new-line:before {content: ""; display: block;}
这适用于Chrome:
p::after {
content: "-";
color: transparent;
display: block;
}
我猜您不想使用断点,因为它总是会断行。那是对的吗?如果是这样,如何<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 />
元素存在的理由非常充分。如果由于它们是单独的段落而需要换行,则只需将它们标记为单独的段落即可。