Как изменить высоту?

У меня есть большой абзац текста, который разделен на подпункты с <br> 's:

<p>
  Blah blah blah.
  <br/>
  Blah blah blah. Blah blah blah. Blah blah blah.
  <br/>
  Blah blah blah.
</p>

Я хочу расширить разрыв между этими подпараграфами, например, два <br> или что-то в этом роде. Я знаю, что правильный способ сделать это - использовать <p></p>, но сейчас я не могу изменить этот макет, поэтому я ищу решение только для CSS.

Я пробовал настройку <br> line-height и height с помощью display: block, я также кратко описал Googled и Stack Overflow-ed, но не нашел никакого решения. Возможно ли это даже без изменения макета?

Ответ 1

Css:

br {
   display: block;
   margin: 10px 0;
}

Решение, вероятно, не совместимо с кросс-браузером, но это как минимум. Также рассмотрите установку line-height:

line-height:22px;

Для Google Chrome рассмотрите настройку content:

content: " ";

Кроме того, я думаю, что вы застряли в решении JavaScript.

Ответ 2

Вот правильное решение, которое на самом деле поддерживает кросс-браузер:

  br {
        line-height: 150%;
     }

Ответ 3

Другой способ - использовать HR. Но, и здесь хитрая часть, сделайте ее невидимой.

Таким образом:

<hr style="height:30pt; visibility:hidden;" />

Чтобы сделать более чистый разрыв BR, смоделированный с использованием HR: Btw работает во всех браузерах!

{ height:2px; visibility:hidden; margin-bottom:-1px; }

Ответ 4

Насколько я знаю, <br> не имеет высоты, он просто заставляет разрыв строки. То, что у вас есть, - это текст с некоторыми разрывами строк в дополнение к автозаверяющим, а не подпараграфам. Вы можете изменить интервал между строками, но это повлияет на все строки.

Ответ 5

Таким образом, peeps выше получили в основном аналогичный ответ, но здесь он очень лаконичен. Работает в Opera, Chrome, Safari и Firefox, скорее всего, IE тоже?

br {
            display: block; /* makes it have a width */
            content: ""; /* clears default height */
            margin-top: 0; /* change this to whatever height you want it */
}

Ответ 6

У меня была эта проблема, и я обошел ее, используя

<div style="line-height:150%;">
    <br>
</div>

Ответ 7

вы можете применить высоту строки к этому элементу <p>, поэтому линии становятся больше.

Ответ 8

Я еще не пробовал псевдоэлемент :before/:after CSS2 CSS2, главным образом потому, что он поддерживается только в IE8 (это касается браузеров IE). Это может быть единственным возможным решением CSS:

br:before {
    display: block;
    margin-top: 10px;
    content: "";
}

Вот пример на QuirksMode.

Ответ 9

Интересно, что если тег разрыва записывается в виде полной формы следующим образом:

<br></br>

тогда работает CSS-высота: 145%. Если тег разрыва написан как:

<br> or 
<br/> 

то это не работает, по крайней мере, в Chrome, IE и firefox. Weird!

Ответ 10

И помните, что (неверно) с использованием тега <hr>, как предложено где-то, закончит тег <p>, поэтому забудьте об этом решении.
Если f.ex. что-то написано на окружающем <p>, этот стиль ушел для остальной части содержимого после вставки <hr>.

Ответ 11

Майкл и йода оба правы. Вы можете использовать тег <p>, который, будучи блочным тегом, использует нижний предел для смещения следующего блока, поэтому вы можете сделать что-то похожее на это, чтобы получить больший интервал:

<p>
    A block of text.
</p>
<p>
    Another block
</p>

Другой альтернативой является использование тега block <hr>, с помощью которого вы можете явно определить высоту интервала.

Ответ 12

У меня возникла мысль, что вы можете использовать:

br:after {
    content: ".";
    visibility: hidden;
    display: block;
}

Но это не работает на chrome или firefox.

Просто подумал, что я упомянул, что в случае, если это произойдет с кем-то еще, и я избавлю их от неприятностей.

Ответ 13

Что работает для меня, это добавить этот встроенный текст между тегами абзаца... но не лучшим решением.

<br style="line-height:32px">

-------- Изменить ---------

Я столкнулся с проблемами с ПК /Mac с этим... Он придает тексту новую высоту строки, но не делает перерыв линии... Возможно, вы захотите сделать некоторые тесты самостоятельно. Извините!

Ответ 14

Вот решение, которое работает в IE, Firefox и Chrome. Идея состоит в том, чтобы увеличить размер шрифта элемента br от размера тела 14px до 18px и опустить элемент на 4px, чтобы дополнительный размер был ниже текстовой строки. Результат - 4px дополнительных пробелов ниже br.

br 
{ 
font-size: 18px; 
vertical-align: -4px; 
}  

Ответ 15

<br /> займет столько места, сколько заполнено текстом в строке <p>, вы не сможете это изменить. Если вы хотите увеличить, это означает, что вы хотите разделить на абзац, поэтому добавьте еще <p>. Не забывайте, что это самая семантическая возможность;)

Ответ 16

br {   
    content: "";
    margin: 2em;
    display: block;
    margin-bottom: -20px; 
 }

Работает в Firefox, Chrome и Safari. Не тестировались в Проводнике. (Windows-планшет не работает.)

Линейные разрывы, размер шрифта работают по-разному в Firefox и Safari.

Ответ 17

Кажется, вы не можете отрегулировать высоту BR, но вы можете сделать его надежным с помощью дисплея: none

Переместился по этой странице, ища решение для следующего:

У меня есть ситуация, когда сторонний платежный шлюз (Worldpay) позволяет вам настраивать свои страницы платежей с максимальным размером 10k CSS и HTML (без script), которые вводятся в тело их шаблона, и после нескольких BR, FONT и т.д. В сочетании с DTD, который заставляет IE7/8 в режиме Quirks, это делает настройку кросс-браузера так же трудно, как и она!

Отключение BR делает вещи намного более последовательными...

Ответ 18

Попробуйте использовать атрибут CSS line-height в тэге p, который содержит тег br. Помните, что вы можете id использовать теги p, если хотите изолировать его, хотя лучше использовать div для изоляции, IMO.

Ответ 19

i Используйте эти методы, но я не знаю, если кросс-браузер

================= Метод 1 ==================

br {
    display:none;
}

ИЛИ

================= Метод 2 ==================

br {
    display: block;
    margin-bottom: 2px;
    font-size:2px;
    line-height: 2px;
}
br:before {
    display: block;
    margin-top: 2px;
    content: "";
}
br:after {
    content: ".";
    visibility: hidden;
    display: block;
}

ИЛИ

================= Метод 3 ==================

br:after { content: "" }
br { content: "" }

Ответ 20

Извините, если кто-то еще сказал об этом, но простое решение - поиграть с вашей "линией высоты". Если вы используете слишком много места при использовании разрыва строки, это просто потому, что у вас слишком высокая высота линии. Вы можете исправить это в CSS (но знаете, что это повлияет на все, что использует это свойство), или вы можете сделать встроенный стиль, чтобы переопределить CSS.

Ответ 21

вы также можете использовать свойство "block-quote" в CSS. Это сделает так, чтобы он не влиял на ваши отдельные строки, но позволяет вам устанавливать параметры только для разрывов между абзацами или "кавычками".

UPDATE:
Я стою исправлено. "blockquote" на самом деле является свойством html. Вы используете его так же, как <p> и </p> вокруг вашей работы. Затем вы можете установить параметры для цитаты блока в css, например

blockquote { margin-top: 20px }

Надеюсь, это поможет. Он аналогичен настройке параметров на br и может быть или не быть совместимым с браузером.

Ответ 22

<br> - для разрыва строки.

<br /> также относится к разрыву строки, "/" необязательно необходимо для элементов void или для xhtml.

Используя <br></br>, браузеры будут вставлять два разрыва строки для обоих "практически" одинаковыми.

Невозможно увеличить размер разрыва строки, потому что это просто разрыв строки.
Используйте div с изменчивостью, установленной на скрытый (<div style="vilibility:hidden; line-height:150%;"</div>) или еще лучше, абзац.

Ответ 23

<span style="line-height:40px;"><br></span> 

Вам нужно будет сделать это inline и для каждого элемента, но он должен работать на большинстве браузеров Скрипт с высотой линии, чтобы получить желаемый эффект. Если вы сделаете его встроенным для каждого элемента, он должен работать в большинстве браузеров и электронной почты (но это слишком сложно для обсуждения здесь).

Ответ 24

Это сделало трюк для меня, когда я не мог заставить интервал стиля работать из тега span:

        <p style='margin-bottom: 5px' >
            <span>I Agree</span>
        </p>
        <span>I Don't Agree</span>

Ответ 25

Если цель состоит в том, чтобы добавить немного лишнего вертикального пространства после тега <br>, не нарушая логический абзац, что-то вроде этого будет делать трюк. Он отлично работает во всех браузерах:

<span style="vertical-align:-37%"> </span><br>

Здесь представлена ​​демонстрационная страница, которая содержит некоторые другие варианты темы:

http://www.burtonsys.com/a_little_extra_vertical_space_for_br_tag.html

Ответ 26

Используйте <div>

<div>Content 1</div>Content 2

Это позволяет создать новую строку без какого-либо вертикального пространства.

Это становится

<div>Content 1</div>Content 2

Ответ 27

Ответ на более общий уровень для всех, кто приземлился здесь, поскольку они исправляют проблемы в промежутке, вызванном тегом <br>. Я должен сделать много сбрасываний, чтобы приблизиться к пикселю.

br {
    content: " ";
    display: block;
}

Для конкретной проблемы, с которой я обращался, я должен был иметь определенное пространство между строками. Я добавил поле вверх и вниз.

br {
    content: " ";
    display: block;
    margin: 0.25em 0;
}

Ответ 28

Я получил его для работы в IE7, используя комбинацию решений, но главным образом обертывая Br в DIV, как предложил Найджел и другие. Добавил Id и запустил at = "server", чтобы я мог удалить BR при удалении флажка из строки флажков.

.narrow {
    display: block;
    margin: 0px;
    line-height: 0px;
    content: " "; 
}
<div class="narrow" run at="server"><br></br></div>

Ответ 29

Мне пришлось разработать решение для преобразования HTML в PDF и вертикально центрировать текст в ячейках таблицы, но ничего не работало, кроме ввода простого <br>

Итак, размышляя вне коробки, я изменил размер по вертикали, отрегулировав размер шрифта (в pt).

<font style="font-size: 4pt"><br></font>

Ответ 30

Возможно, вы нашли решение очень простым, вам нужно всего лишь создать другой тип
. Кажется, я работал на меня.

пример: (html-код)

<br/ class="150%space">

(код css)

br[class='150%space']
{
   line-height: 150%;
}