вихід:
Здравствуйте Як справи
код:
<p>hello <br> How are you </p>
Як досягти такого ж виходу без <br>
?
вихід:
Здравствуйте Як справи
код:
<p>hello <br> How are you </p>
Як досягти такого ж виходу без <br>
?
Відповіді:
Неможливо з однаковою структурою HTML, ви повинні мати щось для розрізнення між Hello
і How are you
.
Я пропоную використовувати span
s, який ви будете відображати як блоки (як і <div>
насправді).
<br>
правильна розмітка. Проміжки для поеми були б "неправильними".
Ви можете використовувати, white-space: pre;
щоб елементи діяли так <pre>
, що зберігає нові рядки. Приклад:
Зауважте для IE, що це працює лише в IE8 +.
pre
є pre-line
, що дозволяє обгортати.
white-space
правило CSS.
<br/>
як звичайне, але ховайте йогоdisplay: none
коли цього не хочете.Я б очікував, що більшість людей, які знайшли це питання, хочуть використовувати css / чуйний дизайн, щоб вирішити, чи з’являється перерва рядків у певному місці. (і нічого не маю проти <br/>
)
Хоча не відразу видно, ви можете застосувати display:none
до <br/>
тегу , щоб приховати його, що дозволяє використовувати запити засобів масової інформації в тандемі з семантичними мітками BR.
<div>
The quick brown fox<br />
jumps over the lazy dog
</div>
@media screen and (min-width: 20em)
{
br
{
display: none; // hide the BR tag for wider screens (i.e. disable the line break)
}
}
Це корисно в адаптивному дизайні, коли вам потрібно зв'язати текст у два рядки при точному перерві.
display: none
рішення, безумовно, є найбільш підходящим і корисним.
display: inline-block; width: 1em;
замість none
.
<br class='foo'>
якщо вам потрібен більше контроль, але не ходіть занадто божевільним!
<br/>
чудово підходить до того, що робить; не потрібно винаходити колесо. Дякую!
Існує кілька варіантів визначення керованості пробілами та розривів ліній. Якщо можна помістити вміст, наприклад, a<p>
Тег, то отримати його дуже легко.
Для збереження розривів рядків, але не пробілів, використовуйте pre-line
(не pre
), як у:
<style>
p {
white-space: pre-line; /* collapse WS, preserve LB */
}
</style>
<p>hello
How are you</p>
Якщо потрібна інша поведінка, виберіть один із них (WS = WhiteSpace, LB = LineBreak):
white-space: normal; /* collapse WS, wrap as necessary, collapse LB */
white-space: nowrap; /* collapse WS, no wrapping, collapse LB */
white-space: pre; /* preserve WS, no wrapping, preserve LB */
white-space: pre-wrap; /* preserve WS, wrap as necessary, preserve LB */
white-space: inherit; /* all as parent element */
Команда "\ a" в CSS генерує повернення каретки. Це CSS, а не HTML, тому він повинен бути ближчим до того, що потрібно: без зайвої розмітки .
У блок-котировці наведений нижче приклад відображає заголовок та джерело посилання та розділяє два з поверненням каретки ( "\a"
):
blockquote[title][cite]:after {
content:attr(title)"\a"attr(cite)
}
display:flex
і, отже, хак в цьому контексті). Дійсно, це не просто сучасна техніка. Якщо ви хочете точно такої розмітки, але насправді реагувати інакше, це шлях.
"
- не використовуйте простих лапок, '
оскільки ви хочете дозволити \a
розбиратися як спеціальний символ.
На CSS використовуйте код
p {
white-space: pre-line;
}
З цим кодом css кожне введення всередині тегу P буде розривом у html.
Спираючись на сказане раніше, це чисте рішення CSS, яке працює.
<style>
span {
display: inline;
}
span:before {
content: "\a ";
white-space: pre;
}
</style>
<p>
First line of text. <span>Next line.</span>
</p>
input type='text', wrapping the input, and then laying the text over it with a wrapper
поділок- . That also requires
покажчиків: none; `на :before
, щоб все-таки можна було натиснути кнопку нижче.
<pre> <---------------------------------------
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
</pre> <--------------------------------------
АБО
<div style="white-space:pre"> <-----------------------------------
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
lorem ipsum
</div> <-----------------------------------
Щоб згодом елемент перервав рядок, призначте його:
display:block;
Неплаваючі елементи після елемента рівня блоку з’являться у наступному рядку. Багато елементів, таких як <p> і <div>, вже є блоковими елементами, тому їх можна просто використовувати.
Але хоча це добре знати, це дійсно більше залежить від контексту вашого вмісту. У вашому прикладі ви не хочете використовувати CSS для примушування розриву лінії. <br /> підходить, оскільки семантично тег p є найбільш підходящим для тексту, який ви відображаєте. Більше розмітки просто для того, щоб звісити CSS від цього не потрібно. Технічно це не зовсім абзац, але тег <greeting> немає, тому використовуйте те, що у вас є. Описуючи своє утримання добре Html шлях більш важливо - після того, як у вас є що то з'ясувати , як змусити це виглядати красиво.
Ось неправильне рішення поганого питання, але таке, яке буквально відповідає короткому:
p {
width : 12ex;
}
p:before {
content: ".";
float: right;
padding-left: 6ex;
visibility: hidden;
}
ex
бути? p
і e
чи не так близько на клавіатурі, тому я запитую
Інші відповіді пропонують кілька хороших способів додавання розривів рядків, залежно від ситуації. Але слід зазначити, що :after
селектор є одним з кращих способів зробити це для управління CSS над списками посилань (і подібних речей) з причин, зазначених нижче.
Ось приклад, припускаючи зміст:
<style type="text/css">
.toc a:after{ content: "\a"; white-space: pre; }
</style>
<span class="toc">
<a href="#a1">Item A1</a> <a href="#a2">Item A2</a>
<a href="#b1">Item B1</a> <a href="#b2">Item B2</a>
</span>
А ось техніка Simon_Weaver, яка простіша і сумісніша. Це не відокремлює стиль і контент настільки, вимагає більше коду, і можуть бути випадки, коли ви хочете додати перерви після факту. Але все-таки чудове рішення, особливо для старих IE.
<style type="text/css">
.toc br{ display: none; } /* comment out for horizontal links */
</style>
<span class="toc">
<a href="#a1">Item A1</a><br/> <a href="#a2">Item A2</a><br/>
<a href="#b1">Item B1</a><br/> <a href="#b2">Item B2</a><br/>
</span>
Зверніть увагу на переваги вищезазначених рішень:
pre
)display:block
Коментарі )float
абоclear
стилі , що впливають на навколишнє зміст<br/>
, абоpre
з жорстко закодованими перервами)a.toc:after
та<a class="toc">
Встановлення br
тегу наdisplay: none
корисно, але тоді ви можете закінчити WordsRunTogether. Мені було корисніше замінити його на пробіл, наприклад:
HTML:
<h1>
Breaking<br />News:<br />BR<br />Considered<br />Harmful!
</h1>
CSS:
@media (min-device-width: 1281px){
h1 br {content: ' ';}
h1 br:after {content: ' ';}
}
br
в display: inline-block; width: 1em;
якому повинні заважати слова від роботи разом, ідучи по горизонталі.
Як щодо <pre>
тегу?
<pre>
щоб вони порушили лінію. Що робити, якщо ви хочете мати регулярні пробіли?
Ви можете додати багато прокладки та змусити текст розбити, наприклад, до нового рядка
p{
padding-right: 50%;
}
Мені непогано працювало в ситуації з чуйним дизайном, коли лише в певному діапазоні ширини було потрібно розбиття тексту.
Вам потрібно задекларувати вміст всередині <span class="class_name"></span>
. Після нього лінія буде розірвана.
\A
означає характер подачі рядка.
.class_name::after {
content: "\A";
white-space: pre;
}
І Вінсент Роберт, і Джої Адамс відповіді справедливі. Якщо ви не хочете змінити розмітку, ви можете просто вставити за <br />
допомогою JavaScript.
Неможливо зробити це в CSS без зміни розмітки.
:after
чи :before
зробити це.
Я здогадуюсь, що ви не хотіли використовувати точку перерви, тому що вона завжди буде порушувати лінію. Це правильно? Якщо так, як про те, як додати точку розриву <br />
до тексту, а потім надати йому такий клас, як <br class="hidebreak"/>
потім, використовуючи медіа-запит прямо над розміром, який ви хочете, щоб він зламався, щоб приховати<br />
щоб він на певну ширину, але залишався в рядку вище цієї ширини.
HTML:
<p>
The below line breaks at 766px.
</p>
<p>
This is the line of text<br class="hidebreak"> I want to break.
</p>
CSS:
@media (min-width: 767px) {
br.hidebreak {display:none;}
}
"Tip: The <br> tag is useful for writing addresses or poems."
Код може бути
<div class="text-class"><span>hello</span><span>How are you</span></div>
CSS був би
.text-class {
display: flex;
justify-content: flex-start;
flex-direction: column;
align-items: center;
}
Не варто. Якщо ви хочете перервати жорстку лінію, використовуйте її.
display: block;
.
<br />
елемент існує з дуже вагомої причини. Якщо ви хочете перервати рядки, оскільки вони є окремими абзацами, то просто позначте їх як окремі абзаци.