如何使用CSS在元素前插入换行符

mhe*_*ers 159 css css3

我觉得我看到了一种方法,使用CSS内容属性,在元素之前插入换行标记.显然这不起作用:

#restart:before { content: '<br/>'; }
Run Code Online (Sandbox Code Playgroud)

但是你怎么做的?

boo*_*sey 252

可以在psuedo-element生成的内容中使用\A 转义序列.阅读 CSS2规范中的更多内容.

#restart:before { content: '\A'; }
Run Code Online (Sandbox Code Playgroud)

您可能还需要添加white-space:pre;#restart.

注意:\A表示一行的结尾.

ps另一种治疗方法

:before { content: ' '; display: block; }
Run Code Online (Sandbox Code Playgroud)

  • 这对我不起作用,我使用`:before {content:''; 显示:块; 相反. (21认同)
  • 也尝试白色空间:预包装; 如果你想要你的文字包装. (10认同)
  • 辉煌.但应该注意的是,为了实现这个目的 - `#re restart`也必须是`display:inline;` (6认同)
  • 如果该行没有中断,您可以使用 'white-space' 属性 :before { content: '\A'; 空白:预;} (3认同)
  • 由于某种原因,没有一个解决方案适用于“inline-block”元素。他们根本不会进入下一行。唯一的解决方案是在 HTML 中实际附加一个空的 `&lt;div&gt;&lt;/div&gt;`。 (2认同)

bob*_*nce 33

如果#restart是内联元素(例如<span>,<em>等),那么您可以使用以下方法将其转换为块元素:

#restart { display: block; }
Run Code Online (Sandbox Code Playgroud)

这样可以确保元素前后的换行.

没有办法让CSS 在元素之前插入像换行符那样的东西,而不是之后.你或许可以在之前作为其他变化的副作用float: left,或者clear: left在浮动元素之后,甚至是疯狂的事情之前引起换行,#restart:before { content: 'a load of non-breaking spaces'; }但在一般情况下这可能不是一个好主意.

  • 一个`float:left`元素可能有一些用处,因为它们缩小到适合并从一个新行开始.否则,你想要的可能是不可能的. (3认同)

hut*_*rny 19

这对我有用:

#restart:before {
    content: ' ';
    clear: right;
    display: block;
}
Run Code Online (Sandbox Code Playgroud)


Jes*_*man 12

只需在before伪元素中放入一个unicode换行符:

#restart:before { content: '\00000A'; }
Run Code Online (Sandbox Code Playgroud)


Jas*_*aro 10

有两个原因导致您无法以您希望的方式通过CSS添加生成的内容:

  1. 生成的内容接受内容而不是标记.标记不会被评估,只会显示.

  2. :before并且:after生成的内容将添加到元素中,因此即使添加空格或字母并将其定义为block也不起作用.

有一个::outside伪元素可能会做你想要的.但是,似乎没有浏览器支持.(在这里阅读更多内容:http://www.w3.org/TR/css3-content/#wrapping)

最好的选择是在这里使用一些jQuery:

$('<br />').insertBefore('#restart');
Run Code Online (Sandbox Code Playgroud)

示例: http ://jsfiddle.net/jasongennaro/sJGH9/1/


rlu*_*uks 7

以下CSS为我工作:

/* newline before element */
#myelementId:before{
    content:"\a";
    white-space: pre;
}
Run Code Online (Sandbox Code Playgroud)


ham*_*ime 6

是的,完全可行,但这绝对是一个彻头彻尾的黑客(人们可能会因为编写这样的代码而对你投以鄙视)。

这是 HTML:

<div>lorem ipdum dolor sit <span id="restart">amit e pluribus unum</span></div>
Run Code Online (Sandbox Code Playgroud)

这是CSS:

#restart:before { content: 'hiddentext'; font-size:0; display:block; line-height:0; }
Run Code Online (Sandbox Code Playgroud)

这是小提琴: http: //jsfiddle.net/AprNY/