忽略与CSS?
我正在一个网站上,在某些标题中插入换行符。 假设我不能编辑源代码的HTML,有没有一种方法与CSS我可以忽略这些rest?
我是移动网站优化,所以我真的不想使用JavaScript。
用CSS,你可以“隐藏”br标签,而不会产生任何效果:
br { display: none; }
如果你只想隐藏一些特定的标题types,只要让你的CSS更具体。
h3 br { display: none; }
注意:此解决scheme仅适用于Webkit浏览器,它错误地将伪元素应用于自闭标签。
作为上述答案的附录,值得注意的是,在某些情况下,需要插入一个空格,而不是忽略<br>
:
例如,上述答案将会转变
Monday<br>05 August
至
Monday05 August
正如我已经证实,而我试图格式化我的每周事件日历。 “星期一”之后的空格最好插入。 这可以通过在CSS中插入以下内容轻松完成:
br { content: ' ' } br:after { content: ' ' }
这将使
Monday<br>05 August
看起来像
Monday 05 August
你可以改变br:after
的content
属性br:after
', '
br:after
', '
如果你想用逗号分开,或者把你想要的东西放在' '
,使它成为分隔符! 顺便一提
Monday, 05 August
看起来整洁;-)
看到这里的参考。
正如在上面的答案,如果你想使其标签特定,你可以。 如果你想要这个属性为标签<h3>
,只需在br
和br:after
添加一个h3
。
它通常用于伪标签。
如果你添加的风格
br{ display: none; }
那么这将工作。 不知道它是否会在旧版本的IE中工作。
这是我如何做到的:
br { display: inline; content: ' '; clear:none; }
如果你想使用空白方法,你可以使用span
元素而不是br
,因为它取决于replace元素的“未定义”伪元素。
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;}
DEMO
换行是通过设置适当的span元素来display:block
。
通过在HTML标记中使用ID和/或类,您可以通过CSS轻松地定位每个单元或span元素的组合,或者使用CSSselect器(如nth-child()
。
因此,您可以通过使用媒体查询来为响应式布局定义不同的中断点。
你也可以简单地通过Javascript(jQuery)添加/删除/切换类。
这种方法的“优势”在于它的健壮性 – 适用于每个支持伪元素的浏览器(请参阅: 我可以使用CSS生成的内容 )。
作为替代,也可以通过伪元素添加换行符:
span.break:before { content: "\A"; white-space: pre; }
DEMO
为此,你可以这样做:
br{display: none;}
如果它是在一些PRE标签内,那么你可以,如果你想PRE标签行为像一个普通的块元素,你可以使用这个CSS:
pre {white-space: normal;}
或者你可以按照Aneesh Karthik C的风格来做 :
br {content: ' '} br:after {content: ' '}
我想你明白了
你可以简单地把它转换成评论
或者你可以这样做:
br { display: none; }
但是,如果你不想要,你为什么要这么做?
虽然这个问题似乎已经解决了,但接受的答案并没有解决我在Firefox上的问题。 Firefox(也可能是IE浏览器,虽然我没有尝试过)在阅读“content”标签的内容时跳过空格。 虽然我完全理解Mozilla会这么做,但它确实带来了一些问题。 我发现的最简单的解决方法是使用不可破坏的空格,而不是普通的空格,如下所示。
.noLineBreaks br:before{ content: '\a0' }
看一下
根据你的问题,要解决这个问题的Firefox和Opera使用Aneesh Karthik C的方法,你需要添加“浮动右”属性。
检查这里的例子 。 这个CSS可以在Firefox(26.0),Opera(12.15),Chrome(32.0.1700)和Safari(7.0)
br { content: " "; float:right; }
我希望这会回答你的问题!
对我来说,看起来更像这样:
Some text, Some text, Some text
br { display: inline; content: ''; } br:after { content: ', '; display: inline-block; }
<div style="display:block"> <span>Some text</span> <br> <span>Some text</span> <br> <span>Some text</span> </div>