Ответ 1
В большинстве случаев, когда IE6 или 7 снимают нижнюю часть текста, просто добавьте:
line-height: normal;
к соответствующим правилам CSS. Должен исправить это красиво, но, как вы поймете, он также расширяет поле.
Несколько дней назад я обновил свой сайт. Разработка этого скина была в основном выполнена с использованием сафари, и, как и ожидалось, все это отлично работает с использованием firefox и opera. Мне пришлось сделать несколько небольших настроек для IE7, но ничего особенного, кроме одной проблемы...
Индикаторы даты для сообщения отключены в IE. Эта проблема возникает только на вложенных тегах span внутри левого плавающего div. Я думаю, мне нужен плавающий div, чтобы разместить текст в левой и правой частях экрана.
Кто-нибудь из вас знает, как остановить IE7 от отсечения моего текста?
Изменить: у меня есть отброшенная проблема. Мои скрипты теперь проверяют IE7 и подают его несколько упрощенным HTML, который может обрабатывать его ограниченный движок. Он работает в IE8, поэтому на данный момент только специальный случай для IE7 должен будет...
В большинстве случаев, когда IE6 или 7 снимают нижнюю часть текста, просто добавьте:
line-height: normal;
к соответствующим правилам CSS. Должен исправить это красиво, но, как вы поймете, он также расширяет поле.
Там хак, который я понял, устраняет проблему отсечения текста в IE. Я заметил, что последняя строка в моем заголовке была единственной, которая была отрезана.
Мой оригинальный CSS, который отрезал последнюю строку в IE7, но выглядел отлично в других браузерах:
h2 {
font-size: 22px;
line-height: 1em;
}
См. изображение проблемы здесь: https://skitch.com/pablohart/f4g3i/windows-7-x64
Исправление, которое я делал, включало просто добавление отступов вниз, а затем удаление этого отступа с отрицательным запасом. Вот так:
h2 {
font-size: 22px;
line-height: 1em;
padding-bottom: 5px;
margin-bottom: -5px;
}
Смотрите изображение исправления на этом изображении: https://skitch.com/pablohart/f4g4h/windows-7-x64
Проблема с line-height: normal; заключается в том, что для шрифта требуется по умолчанию строка-высота, обычно 1.3em.
Попробуйте добавить переполнение: visible; к вашему классу .postdate. Возможно, это помогает.
У меня была аналогичная проблема. Я изменил свой диапазон на div, и проблема была решена. Я думаю, что IE7 может иметь проблему обработки строки-высоты на пролете. Не подтвердили, что это проблема. Были и другие элементы CSS. (Работа над кодом другого пользователя.) Но переход от span к div (block) разрешил проблему.
для класса .bigdate, попробуйте заменить margin с помощью дополнения; мне кажется, что это имеет какое-то отношение к обработке маржировки IE.
Добавление определенной высоты в .title исправляет ее для меня (в IE6):
.title {
PADDING: 0 10px 0 0; MARGIN-top: 0.3em; FLOAT: right; height: 1em;
Несмотря на то, что не удалось проверить его на моей текущей машине: я подозреваю, что это ошибка hasLayout. Методы работы с ним перечислены в разделе properties" этой ссылки.
По моему опыту, он неизменно является нижней частью текста, который обрезается, и это тоже в основном из-за перекрывающихся разделов. Если вы можете гарантировать, что divs не перекрываются, проблема будет решена. Это отличие добавления переполнения: видимый иногда помогает.
Попробуйте добавить
div.postmeta { height: 100px; }
div.postdate { height: 75px; }
Произвольное значение высоты... но вы знаете точную высоту, которую хотите. Это должно содержать текстовые контейнеры от обрезки в IE7.
Я думаю, что проблема заключается в дополнении. Я попытался удалить стиль "padding: 3px", и он работал правильно. Раньше он ничего не показывал. Ответ Павла Харта показал мне это.
Вероятно, также может быть устранено удаление/переопределение свойств маржи.