Чистое CSS-исправление ошибки падения 'float: right' в IE7

У меня постоянно возникают проблемы с элементами, плавающими прямо в IE7.

Я прочитал много вопросов Stack Overflow, которые похожи на этот, но, похоже, нет никаких последовательно чистых ответов CSS.

Я имею в виду, что я хочу увидеть ответы, которые НЕ изменяют HTML. Например:

  • Поместите плавающий элемент первым
  • Добавьте 'clear: both' div после плавающего элемента.

Я понимаю, что иногда плавающий элемент не учитывает высоту своих родителей и поэтому иногда не может содержать его должным образом. Иногда я обнаруживаю, что «добавляю макет» к элементу с зумом: 1, который иногда исправляет его. В других случаях я ловлю себя на том, что возюсь в условном стиле IE7-лист, который, на мой взгляд, не является лучшим исправлением.

Примечание: Что я имею в виду под «наличием макета» - http://www.satzansatz.de/cssd/onhavinglayout.html

Я также читал другие ответы, связанные с использованием относительного и абсолютного позиционирования (родительский div и дочерний div соответственно). Это подтягивает его, но часто влияет на окружающие divs.

Я был бы рад добавить награду к этому вопросу, если кто-то может дать подробное объяснение причин, по которым это происходит, и подробное обсуждение различных исправлений, В ИДЕАЛЕ ТОЛЬКО CSS!

Большое спасибо!

EDIT

Наиболее распространенная проблема, с которой я сталкиваюсь, возникает, когда у меня есть что-то вроде этого:

Левая боковая панель - Главная - Правая боковая панель

Правая часто опускается при плавании. В идеале это должно быть в формате Left - Right - Main, но я постоянно нахожу себя стилизирующим разработчиком работы (в основном Drupal), где это так, и слишком много хлопот, чтобы заставить их изменить свою работу. Смысл?Поскольку я стилизую работу разработчиков, они никогда не ставят четкий блок (что лично я считаю ужасным и грязным в любом случае!)

7
задан Rick Donohoe 13 July 2012 в 08:17
поделиться