Проблема совместимости IE: внутри

#html #css #cross-browser

#HTML #css #кроссбраузерный

Вопрос:

У меня есть следующий HTML / CSS, который просто имеет <span> тег, стилизованный под float:right внутри <h2> тега:

 <style>h2{background-color:#e2e2e2;}
span{float:right;border:1px solid red;}</style>
<h2>H2 Test <span>SPAN text</span></h2>
  

В Firefox все работает хорошо (и я подозреваю, что в других хороших браузерах, таких как Chrome, Opera и т.д.), Но в IE <span> выполняется принудительный перевод на следующую строку.

Примечание: на рисунке показан пример Firefox и IE. введите описание изображения здесь

Как я могу заставить IE дублировать поведение Firefox?

Дополнительная информация: Я не привязан к использованию float:right , все, что я действительно хочу, это выровнять часть текста по левому краю, а часть текста по правому краю внутри <h2> . Я пробовал множество способов, но IE всегда кажется браузером, который просто не будет работать. Буду признателен за любую помощь.

Комментарии:

1. Я могу ошибаться, поэтому это публикуется как комментарий, а не как ответ. Но разве вы обычно не применяете «float» только к элементам уровня блока? Span — это не блок, а встроенный элемент, и, возможно, именно поэтому IE не очень хорошо с ним обращается.

2. То же самое происходит с <div> тегом. Я подумал, что, возможно, <span> это может быть не так, потому что это не элемент уровня блока.

3. Это работает, но я не уверен, что это именно то поведение, которое вы хотите. Дайте мне знать, и я попытаюсь изменить это, если это не так: jsfiddle.net/DctfL/12

4. С какой версией IE вы тестируете? Какие версии IE вас интересуют? Не могли бы вы добавить полный HTML, который вы используете для этого изображения «H2 Test»?

5. Сейчас я читаю больше об этом, и пока я нахожу консенсус в том, что вы не можете применять «float» к элементам неблочного уровня.

Ответ №1:

HTML:

 <h2><span class="_1">H2 Test</span><span class="_2">SPAN text</span></h2>
  

css:

 h2{background-color:#e2e2e2;overflow:hidden}
span._1{float:left}
span._2{float:right;border:1px solid red;}
  

демонстрация jsfiddle:
http://jsfiddle.net/shmZR /