2010-06-03 3 views
2

У меня есть текстовый блок диапазона внутри абзаца. Внутри этого блока диапазона у меня есть два абзаца. В webkit браузер правильно отображает первый абзац, но не возвращается к настройкам браузера по умолчанию на последних двух. Зачем?Почему этот HTML-код не работает?

<style type="text/css"> 

span.post-content { 
font-family: Verdana, Arial, Helvetica, sans-serif; 
font-size: 16px; 
} 

</style> 

<p><span class="post-content"> Some text here <p/> From here text loses style and adopts browser default <p/> same here </span></p> 

Это работает во всех браузерах, кроме основанных на Webkit: хрома и сафари.

ответ

17

Пример: invalid. Исправьте ошибки, и проблема, скорее всего, исчезнет.

  1. Промежуток элемент не может включать ар элемент
  2. В HTML <p/> не означает, что вы, вероятно, думаете, что означает
  3. <p/> не допускается в HTML Совместимый XHTML
  4. В XHTML, <p> не может содержать <p> (ни в HTML, но конечный тег не является обязательным, так <p>foo<p>bar действует и средства <p>foo</p><p>bar)

Вы, вероятно, хотите что-то вроде этого (и изменить CSS для ссылки на измененный тип элемента)

<div class="post-content"> 
    <p>Some text here</p> 
    <p>From here text loses style and adopts browser default</p> 
    <p>same here</p> 
</div> 
1

Может быть, вы можете начать писать хорошо структурированный HTML затем увидеть, если есть какие-либо проблемы.

+0

Это верно, но не полезно и не правильно ответить на вопрос. OP явно не понимает, что его HTML не является хорошо сформированным, поэтому было бы более конструктивным объяснить, почему, а не просто критиковать его код. – megaflop

1

Вы всегда можете проверить (X) HTML код здесь:

validator.w3.org

Или в Opera браузер быстрее: щелкните правой кнопкой мыши -> Проверить

-1

Как сказал Давид: продолжительность не может содержать р - то есть он может - но это не имеет смысла - поскольку span - тип отображения INLINE, а p - тип BLOCK. Промежуток элементом является линия в пределах блока ...

как указано бен: понятия должны быть поняты - структурированная или не

+0

Нет, не может. Спецификация запрещает это. Браузеры будут пытаться исправить ошибки, как они это делают, зависит от браузера. – Quentin

+0

Это может быть - поэтому браузеры ведут себя по-разному. Я не сказал, что это правильно - я сказал, что может - это не так. Это предопределенные свойства отображения, которые делают его тем, чем он является. Они ввели SPAN и DIV, чтобы сигнализировать, что свойство отображения иногда требуется для предопределенных HTML-тегов. Anyways - я не могу найти прямую ссылку на запретную часть, так что, возможно, это в спецификации HTML 4.01; o) – Mike