Я відчуваю, що побачив спосіб, використовуючи властивість вмісту CSS, вставити тег розриву рядка перед елементом. Очевидно, що це не працює:
#restart:before { content: '<br/>'; }
Але як це зробити?
Я відчуваю, що побачив спосіб, використовуючи властивість вмісту CSS, вставити тег розриву рядка перед елементом. Очевидно, що це не працює:
#restart:before { content: '<br/>'; }
Але як це зробити?
Відповіді:
Можливо, використовуючи \A
послідовність евакуації у вмісті, створеному за допомогою psuedo. Детальніше читайте у специфікації CSS2
#restart:before { content: '\A'; }
Вам також може знадобитися , щоб додати white-space:pre;
до #restart
.
Примітка: \A
позначає кінець рядка.
ps Ще одне лікування
:before { content: ' '; display: block; }
#restart
повинна бутиdisplay: inline;
:before { content: ' '; display: block; }
замість цього.
inline-block
елементами. Вони просто не перейдуть на наступний рядок. Єдиним рішенням було фактично додавати порожнє <div></div>
в HTML.
Якщо #restart
це вбудований елемент (наприклад <span>
, <em>
тощо), ви можете перетворити його в блок-елемент, використовуючи:
#restart { display: block; }
Це призведе до забезпечення розриву рядка як перед елементом, так і після нього.
Немає способу змусити CSS вставити щось, що діє як розрив рядка лише перед елементом, а не після. Ви можете, можливо, спричинити розрив рядків раніше, як побічний ефект інших змін, наприклад float: left
, або clear: left
після плаваючого елемента, або навіть щось божевільне, як, #restart:before { content: 'a load of non-breaking spaces'; }
але це, мабуть, не є ідеєю в загальному випадку.
float: left
Елемент може бути корисна, так як вони стискаються до нападу і почати новий рядок. Інакше те, що ви хочете, може бути неможливим.
Це працює для мене:
#restart:before {
content: ' ';
clear: right;
display: block;
}
Просто введіть символ Unicode у новий рядок до елемента перед псевдо:
#restart:before { content: '\00000A'; }
Наступний CSS працював на мене:
/* newline before element */
#myelementId:before{
content:"\a";
white-space: pre;
}
content: 'bar: \a' attr(data-description);
Є дві причини, чому ви не можете додавати створений вміст через CSS так, як вам потрібно:
створений вміст приймає вміст, а не розмітку. Розмітка не оцінюватиметься, а відображатиметься лише.
:before
а :after
створений вміст додається всередині елемента, тому навіть додавання пробілу чи літери та визначення його як block
не буде працювати.
Є ::outside
псевдоелемент, який може робити те, що ви хочете. Однак, схоже, немає підтримки браузера. (Детальніше тут: http://www.w3.org/TR/css3-content/#wrapping )
Найкраще ставити тут трохи jQuery:
$('<br />').insertBefore('#restart');
Так, повністю виконано, але це, безумовно, тотальний злом (люди можуть дати вам брудний вигляд написання такого коду).
Ось 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;
}
Мені зовсім не пощастило із вставкою перерви з: раніше. Моє рішення полягало в тому, щоб додати проміжок класу і поставити перерву всередині проміжку. Потім змініть клас для відображення: немає; або дисплей: блокувати за потребою.
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 Вміст Proerty, "нові рядки" ... p не додаватимуть поля чи заповнення в кінці p всередині батьківського блоку (наприклад, body ›section› р). Розрив рядка "\ A" примушує простір лінії, еквівалентну стильовій висоті.
Додати margin-top:20px;
в #restart
. Або незалежно від розміру, який ви вважаєте за потрібне. Якщо це вбудований елемент, вам доведеться додати display:block
або display:inline-block
хоча я не думаю, що inline-block
працює на старих версіях IE.
Замість того, щоб вручну додавати розрив рядка якось, ви можете виконати реалізацію, border-bottom: 1px solid #ff0000
яка буде мати межу елемента та відображати лише ту border-<side>
сторону, яку ви вказали.
<br>
, ні <hr>
.