我正在使用某些标题中以<br>
插入换行符的网站。假设我无法编辑源HTML,有没有CSS的方法我可以忽略这些中断?
我正在移动优化网站,所以我真的不想使用JavaScript。
答案 0 :(得分:173)
使用css,你可以“隐藏”br标签,它们不会产生影响:
br {
display: none;
}
如果您只想隐藏特定标题类型中的某些内容,只需使您的css更具体。
h3 br {
display: none;
}
答案 1 :(得分:86)
注意:此解决方案仅适用于Webkit浏览器,它会将伪元素错误地应用于自动关闭标记。
作为上述答案的附录,值得注意的是,在某些情况下,需要插入空格而不是仅仅忽略<br>
:
例如,上述答案将转为
Monday<br>05 August
到
Monday05 August
我在尝试格式化每周活动日历时已经验证了。优选插入“星期一”之后的空格。这可以通过在CSS中插入以下内容轻松完成:
br {
content: ' '
}
br:after {
content: ' '
}
这将使
Monday<br>05 August
看起来像
Monday 05 August
如果您想用逗号分隔,可以将content
中的br:after
属性更改为', '
,或者在' '
中放置您想要的任何内容以使其成为分隔符!顺便说一句
Monday, 05 August
看起来整洁; - )
请参阅here以获取参考。
如上面的答案所示,如果你想让它特定于标签,你可以。如果您希望此属性适用于代码<h3>
,则只需在h3
和br
之前添加br:after
。
它最常用于伪标签。
答案 2 :(得分:16)
如果添加样式
br{
display: none;
}
然后这将有效。不确定它是否适用于IE的旧版本。
答案 3 :(得分:8)
我就是这样做的:
br {
display: inline;
content: ' ';
clear:none;
}
答案 4 :(得分:6)
如果您希望使用空格方法,则可以使用span
元素而不是br
,因为它取决于被替换元素“未定义”的伪元素。
<强> HTML 强>
<p>
To break lines<span class="line-break">in a paragraph,</span><span>don't use</span><span>the 'br' element.</span>
</p>
<强> CSS 强>
span {white-space: pre;}
span:after {content: ' ';}
span.line-break {display: block;}
span.line-break:after {content: none;}
只需将适当的span元素设置为display:block
即可实现换行。
通过在HTML标记中使用ID和/或Classes,您可以轻松地通过CSS定位每个单独或跨度元素的组合,或使用nth-child()
等CSS选择器。
所以你可以,例如通过使用媒体查询为响应式布局定义不同的断点。
你也可以通过Javascript(jQuery)简单地添加/删除/切换类。
这种方法的“优点”是它的健壮性 - 适用于支持伪元素的每个浏览器(参见:Can I use - CSS Generated content)。
作为替代方案,还可以通过伪元素添加换行符:
span.break:before {
content: "\A";
white-space: pre;
}
答案 5 :(得分:1)
为此你可以这样做:
br{display: none;}
如果它在某个PRE标签内,那么您可以并且如果您希望PRE标签的行为类似于常规块元素,则可以使用此CSS:
pre {white-space: normal;}
或者你可以遵循Aneesh Karthik C的风格 喜欢:
br {content: ' '}
br:after {content: ' '}
我认为你明白了
答案 6 :(得分:1)
根据您的问题,要使用Aneesh Karthik C方法解决Firefox和Opera的这个问题,您需要在“属性”中添加“float”。
在此处查看example。这个CSS适用于 Firefox(26.0),Opera(12.15),Chrome(32.0.1700)和Safari(7.0)
br {
content: " ";
float:right;
}
我希望这会回答你的问题!!
答案 7 :(得分:1)
对我来说看起来更像这样:
Some text, Some text, Some text
br {
display: inline;
content: '';
}
br:after {
content: ', ';
display: inline-block;
}
&#13;
<div style="display:block">
<span>Some text</span>
<br>
<span>Some text</span>
<br>
<span>Some text</span>
</div>
&#13;
答案 8 :(得分:0)
虽然这个问题似乎已经解决了,但是接受的答案并没有解决我在Firefox上遇到的问题。 Firefox(可能是IE,虽然我没有尝试过)在阅读“内容”标签的内容时跳过空格。虽然我完全理解为什么Mozilla会这样做,但确实会带来一些问题。 我发现最简单的解决方法是使用不可破坏的空格而不是常规空格,如下所示。
.noLineBreaks br:before{
content: '\a0'
}
答案 9 :(得分:0)
是的,您可以忽略此<br>
。
特别是在响应式设计中,您需要删除移动设备的中断时,可能会需要这样做。
HTML
<h2>
Where ever you go <br class="break"> i am there.
</h2>
移动示例CSS
/* Resize the browser window to check */
@media (max-width: 640px)
{
.break {display: none;}
}
查看此Codepen:
https://codepen.io/fluidbrush/pen/pojGQyM
答案 10 :(得分:-1)
您只需在评论中对其进行转换即可。
或者你可以这样做:
br {
display: none;
}
但如果你不想要它为什么要把它放在那里?