Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Перевод строки внутри DIV
 
 автор: Denis_Gorby   (25.07.2007 в 18:22)   письмо автору
 
 

Здравствуйте.

Осваиваю DIV-ную верстку, и в процессе удаления из темплейтов таблиц наткнулся на интересное поведение IE 6.0.

Вот такой код:


<div style="border: solid 1px Red; width:70px; height:30px; padding: 0; margin: 0"><img src="i/Label.gif" width="70px" height="30px"/></div>


работает вполне ожидаемо: вокруг картинки, вплотную к ней, появляется красная рамка.

А вот такой код (единственное отличие от предыдущего примера - размещение каждого тэга в отдельной строке):


<div style="border: solid 1px Red; width:70px; height:30px; padding: 0; margin: 0">
<img src="i/Label.gif" width="70px" height="30px"/>
</div>


Добавляет под картинкой, перед красной границей, пару ненужных пикселей.

В IE7, Opera, FF и Safari данная проблема не проявляется. Собственно, вопрос - эту проблему можно победить как-нибудь, кроме размещения DIV в одну строку (что делает код трудночитаемым - в реальном коде не только картинка присутствует)?

Заранее спасибо за советы и ссылки,
Денис.


PS

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

   
 
 автор: AlexSol   (25.07.2007 в 18:31)   письмо автору
 
   для: Denis_Gorby   (25.07.2007 в 18:22)
 

IE и таблицы с таким красывым форматированием тоже чудно обрабатывает иногда. единственное что приходит в голову - <img style="float:left;" />

а для вашего кода можно остановиться на


<img src="i/Label.gif" width="70px" height="30px" style="border: solid 1px Red; float:left;clear:both" />

   
 
 автор: Denis_Gorby   (25.07.2007 в 19:04)   письмо автору
 
   для: AlexSol   (25.07.2007 в 18:31)
 

Спасибо, float решил проблему в данном текстовом примере, но для реального сайта породил некоторые новые сложности.

Путем научного тыка удалось объяснить поведение DIV-a в IE 6 - он считает наличие перевода строки в теле текстом и выделяет под него место, как в данном случае:


<div style="border: solid 1px Red; padding: 0; margin: 0"><img src="i/Label.gif" width="70px" height="30px"/>рррр</div>


Приведенный код в любом браузере добавляет пару пикселей под картинкой, чтобы палочка от р уместилась. Проблему удалось решить добавлением vertical-align к картинке, что сместило весь текст чуть вверх.


<div style="border: solid 1px Red; padding: 0; margin: 0"><img src="i/Label.gif" width="70px" height="30px" style="vertical-align:-3px"/>рррр</div>



Выглядит как workaround, но работает.

   
 
 автор: Babr   (31.07.2007 в 17:55)   письмо автору
 
   для: Denis_Gorby   (25.07.2007 в 18:22)
 

отступ просто потому что есть символ переноса каретки :)
да и смысл для этого див делать? <img src = "" alt = "" style="border:1px solid #f00;">

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования