Как использовать тег <h2></h2> внутри <p></p> в середине текста?

Я хочу сделать что-то вроде этого:

<p>This is a <h2>text</h2> paragraph.</p>

Я отключил поле и добавление для h2, но он все еще разбивает строку до и после тега h2. Как я могу использовать тег h2 в середине текста и сделать его похожим, если это нормальное слово, как и <b> делает?

Допитом моего html-документа является "XHTML 1.0 Transitional"

Ответ 1

Не рекомендуется использовать тег, который означает "заголовок" в тексте тела. Тегами <h..> являются логические теги; их использование придает смысл прилагаемому тексту, а именно, что текст является заголовком раздела.

Хотя вы можете использовать атрибут display: inline, подумайте об использовании более подходящего тега или даже тега <span>.

Ответ 2

Недопустимо иметь h2 внутри p.

Помимо этого и для ответа на ваш вопрос, h2 является элементом уровня block. Создание элемента уровня inline приведет к тому, что он будет вести себя аналогично тому, как вы описываете действующий тег b.

p h2{display:inline}

Как я уже сказал выше, HTML, который вы указали, недействителен.

Ответ 3

Не надо, все дело в том, что это заголовок. Заголовки находятся на одной линии. Вместо этого используйте CSS. Скажите текст, а затем в файле CSS, выберите размер шрифта.

Ответ 4

Вам нужно сделать это

display:inline;

h2 является блочным элементом.

Тег h2 помещает заголовок, который по определению не является частью текста. Так что вы делаете, вероятно, не самый лучший способ. Подумайте об этом по-другому.

Ответ 5

Создайте класс как .myH2 (не лучшее имя) с тем же кодом h2 и используйте span в p как

<p>this is <span class="myH2">myH2</span>.</p>

Ответ 6

Несмотря на неправильное использование тега <h2> внутри абзаца, мы можем создать стиль <h2>, чтобы держать его в абзаце. Я протестировал один из вышеперечисленных трюков CSS в Firefox и Chrome следующим образом:

HTML-код <p>One paragraph with <h2>title text</h2> in the middle</p>

CSS трюк p h2{display:inline}

НО он не получит ожидаемого результата. Браузер усекает абзац прямо перед исходным тегом h2. Посмотрите DOM из Firebug:

enter image description here

Поэтому трюк CSS p h2{display:inline} работает некорректно, потому что правило CSS неверно, т.е. тег <h2> находится не внутри тега <p>. Это выглядит так:

enter image description here

Добавление трюка CSS только для тега <h2> h2{display:inline} не является окончательным решением. Он будет выглядеть следующим образом:

enter image description here

Окончательный вариант:

HTML-код <p class="inline-object">One paragraph with <h2 class="inline-object">title text</h2> in the middle</p>

CSS трюк .inline-object" {display:inline}

Это будет выглядеть так, как мы ожидаем:

enter image description here

Если вы пытаетесь замаскировать текст заголовка <h2> как обычный текст, просто добавьте еще два правила в класс .inline-object" {display:inline;font-size: inherit;font-weight: normal;}

Ответ 7

Firefox вырезает мой P из-за H2 внутри него. А затем создав P для

(пустой абзац). И это хорошо. Поскольку он автоматически генерируется, и для очистки тэгов P мне нужно написать десятки PHP-кода.