Мне кажется, что я видел способ, используя свойство содержимого CSS, вставить тег разрыва строки перед элементом. Очевидно, что это не работает:
#restart:before { content: '<br/>'; }
Но как вы это делаете?
Мне кажется, что я видел способ, используя свойство содержимого CSS, вставить тег разрыва строки перед элементом. Очевидно, что это не работает:
#restart:before { content: '<br/>'; }
Но как вы это делаете?
Возможно, с помощью \A
escape-последовательности в созданном psuedo-элементе содержимом. Подробнее в спецификации CSS2.
#restart:before { content: '\A'; }
Вам также может потребоваться добавить white-space:pre;
в #restart
.
Примечание: \A
обозначает конец строки.
p.s. Другое лечение -
:before { content: ' '; display: block; }
Если #restart
является встроенным элементом (например, <span>
, <em>
и т.д.), вы можете превратить его в элемент блока, используя:
#restart { display: block; }
Это приведет к тому, что разрыв строки будет как до, так и после элемента.
Нет способа вставить CSS-вставку что-то, что действует как разрыв строки только перед элементом, а не после. Вы могли бы вызвать разрыв строки перед тем, как побочный эффект других изменений, например float: left
или clear: left
после плавающего элемента, или даже что-то сумасшедшее, как #restart:before { content: 'a load of non-breaking spaces'; }
, но это, вероятно, не очень хорошая идея в общем случае.
Это работает для меня:
#restart:before {
content: ' ';
clear: right;
display: block;
}
Просто поместите символ новой строки Unicode внутри псевдоэлемента:
#restart:before { content: '\00000A'; }
Есть две причины, по которым вы не можете добавлять сгенерированный контент через CSS так, как вы хотите:
Сгенерированный контент принимает контент, а не разметку. Разметка не будет оцениваться, но отображается только.
:before
и :after
сгенерированный контент добавляется внутри элемента, поэтому даже добавление пробела или буквы и определение его как block
не будет работать.
Существует псевдо-элемент ::outside
, который может делать то, что вы хотите. Однако, похоже, поддержка браузером отсутствует. (Подробнее читайте здесь: http://www.w3.org/TR/css3-content/#wrapping)
Лучше всего использовать немного jQuery здесь:
$('<br />').insertBefore('#restart');
Следующий CSS работал у меня:
/* newline before element */
#myelementId:before{
content:"\a";
white-space: pre;
}
Да, полностью выполнимо, но это определенно полный хак (люди могут дать вам грязные взгляды на написание такого кода).
Вот HTML:
<div>lorem ipdum dolor sit <span id="restart">amit e pluribus unum</span></div>
Вот CSS:
#restart:before { content: 'hiddentext'; font-size:0; display:block; line-height:0; }
Вот скрипка: http://jsfiddle.net/AprNY/
Попробуйте следующее:
#restart::before {
content: '';
display: block;
}
Предполагая, что высота линии должна быть 20 px
.restart:before {
content: 'First Line';
padding-bottom:20px;
}
.restart:after {
content: 'Second-line';
position:absolute;
top:40px;
}
Мне не повезло с вставкой перерыва с: раньше. Мое решение состояло в том, чтобы добавить пролет с классом и поставить перерыв внутри пролета. Затем измените класс для отображения: none; или отображение: блок по мере необходимости.
HTML
<div>
<span class="ItmQty"><br /></span>
<span class="otherclass">
<asp:Label ID="QuantityLabel" runat="server" Text="Qty: ">
</asp:Label>
</span>
<div class="cartqty">
<asp:TextBox ID="QuantityTextBox" runat="server" Text='<%# Bind("Quantity","{0:#}") %>' Width="50"></asp:TextBox>
</div>
</div>
CSS
@media only screen and (min-width: 854px)
{
.ProjItmQty
{
display: block;
clear: both;
}
}
@media only screen and (min-width: 1003px)
{
.ProjItmQty
{
display: none;
}
}
Надеюсь, что это поможет.
Вы можете заполнить свой документ тегами <br>
и включить их\с помощью css, как и любые другие:
<style>
.hideBreaks {
display:none;
}
</style>
<html>
just a text line<br class='hideBreaks'> for demonstration
</html>
Вы также можете использовать предварительно закодированный объект HTML для разрыва строки
в своем контенте, и он будет иметь тот же эффект.
body * { line-height: 127%; }
p:after { content: "\A "; display: block; white-space: pre; }
https://www.w3.org/TR/CSS2/generate.html#x18 Content Proerty, "newlines"... p не будет добавлять поля или отступы в конце p внутри родительского блока (например, body ›section› п). "\ A" разрыв строки приводит к появлению пробела, эквивалентного стилизованной высоте строки.
Добавьте margin-top:20px;
в #restart
. Или независимо от того, какой размер вы считаете нужным. Если это встроенный элемент, вам нужно добавить display:block
или display:inline-block
, хотя я не думаю, что inline-block
работает в более старых версиях IE.
Вместо того, чтобы как-то вручную добавить разрыв строки, вы можете реализовать border-bottom: 1px solid #ff0000
, который примет границу элемента и будет только рендерить border-<side>
той стороны, которую вы указали.