Трехпиксельный отступ в ие6 после float элементов
Есть такая проблема в ие6, если после float элементов, пусть это будет например картинка 50 на 50 пикселей с float:left, пустить текст например в теге p с margin-left:60px, то у текста слева в ие6 появляется лишний трехпиксельный отступ на высоту float элемента. Как с этим бороться, я вам сейчас покажу.
Итак, пусть, например, есть такой код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Трехпиксельный отступ в ие6 после float элементов</title> <style type="text/css"> .box { width:300px; border:1px dotted #090; } .left { width:50px; height:50px; float:left; background:#999; } p { font-size:12px; margin:0 0 0 60px; padding:0; } </style> </head> <body> <div class="box"> <div class="left"></div> <p>Лишь великие события создают Отступ ие6. «Если часто увлекаться, в Отступ ие6 можно потеряться»... Сетовать на Отступ ие6 нечего. Просто таков порядок вещей, именуемых современной цивилизацией. Долго я думал, говорить про Отступ ие6 или нет, решил все-таки попробовать с надеждой, что меня поймут правильно. В России сформировалось поколение молодежи, которое сильно отличается от своих предшественников. Девиз: «Отступ ие6 зависит от тебя», – остался в 90-х. Поколение 2000-х отвергает массовую культуру и безудержное потребительство. Для современной молодежи более актуален слоган «Отступ ие6 от тебя не зависит». Отступ ие6 – это как в незнакомом помещении дверь без вывески. Понятно, что это – дверь, но непонятно, куда она ведёт. Друг не всегда Отступ ие6, но Отступ ие6 всегда друг. Отступ ие6 друг – это знают все вокруг! Так часто бывает – несешь человеку счастье, а приносишь Отступ ие6. Храните Отступ ие6 под подушкой. А вот «6еи путсто» – это Отступ ие6 наоборот.</p> </div> </body> </html> |
Согласно этому коду, див с классом left должен быть слева, а текст — справа. Также текст должен быть выровнен ровно по левому краю, отставая от него на 60px. Но вот в ие6 появляется лишний отступ на высоту float элемента:

Решается проблема добавлением противоположного отрицательного маргина, равной ширине float элементу:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Трехпиксельный отступ в ие6 после float элементов</title> <style type="text/css"> .box { width:300px; border:1px dotted #090; } .left { width:50px; height:50px; float:left; background:#999; margin-right:-50px; /* Ухты, даже как хак через подчеркивание оформлять не надо, везде работает, не ожидал =) */ } p { font-size:12px; margin:0 0 0 60px; padding:0; } </style> </head> <body> <div class="box"> <div class="left"></div> <p>Лишь великие события создают Отступ ие6. «Если часто увлекаться, в Отступ ие6 можно потеряться»... Сетовать на Отступ ие6 нечего. Просто таков порядок вещей, именуемых современной цивилизацией. Долго я думал, говорить про Отступ ие6 или нет, решил все-таки попробовать с надеждой, что меня поймут правильно. В России сформировалось поколение молодежи, которое сильно отличается от своих предшественников. Девиз: «Отступ ие6 зависит от тебя», – остался в 90-х. Поколение 2000-х отвергает массовую культуру и безудержное потребительство. Для современной молодежи более актуален слоган «Отступ ие6 от тебя не зависит». Отступ ие6 – это как в незнакомом помещении дверь без вывески. Понятно, что это – дверь, но непонятно, куда она ведёт. Друг не всегда Отступ ие6, но Отступ ие6 всегда друг. Отступ ие6 друг – это знают все вокруг! Так часто бывает – несешь человеку счастье, а приносишь Отступ ие6. Храните Отступ ие6 под подушкой. А вот «6еи путсто» – это Отступ ие6 наоборот.</p> </div> </body> </html> |
Вот результат, проблема решена:

Комментарии (2) на “Трехпиксельный отступ в ие6 после float элементов”
Оставить комментарий
Для вставки кода используйте <code> ... </code>.
Метод действительно работает. Советую… Пользуйтесь…
Миллион раз читал и слышал про данный баг «браузера», но сам никогда с ним не сталкивался.
Сегодня столкнулся, сразу начал копать, попал сюда, нашел ответ, вообщем благодарю