Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Вёрстка веб-сайтов > Факиный IE


Автор: Stampede 22.9.2005, 05:48
Вот я пытаюсь отобразить рисунок, состоящий из нескольких элементов, в виде таблицы, каждая ячейка которой содержит фрагмент целой картинки. Все получется очень хорошо, до тех пор пока я не открываю станицу в IE. Непонятно из каких соображений, но эксплорер зачем-то добавляет внизу ячейки с картинкой пустое пространство. В Опере и ФФ все работает как положено.

Вопрос: ну почему IE такие патологические уроды? Почему каждая сраная фича на странице требует неимоверных усилий, чтобы заставить ее работать так как надо?

ЗЫ. Пример простейшего кода, который демонстрирует кривость IE, приведен http://real-english.ru/data/square.html.

Спасибо за внимание!

Автор: diam 22.9.2005, 07:01
Попробуй поставить у img свойство margin в 0.
Код

img { margin: 0; }

Автор: Greendrake 22.9.2005, 08:05
Убери пробелы и переносы строки между img и </td>, вот так:
HTML
<td><img src="square.gif" /></td>

На эмоциях далеко не уедешь. Побольше усидчивости и самообладания - и результат будет на лице.

Автор: Gold Dragon 22.9.2005, 08:28
Stampede
IE тут не причёт.. просто ручки малость корявые smile

напиши вместо
Код

<td>
<img src="square.gif" />
</td>

это
Код

<td><img src="square.gif"></td>

просто где-то абзац или пробелы... и желательно ставить размеры рисунка

И что за моду взяли писать при <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> стали писать синтаксисом XHML, я имею косую черту в теге..
Добавлено @ 08:29

Greendrake
опередил smile

Автор: Str!pe 22.9.2005, 14:19
Red Dragon
На счет синтаксиса...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
так Dreamweawer гонит код по дефолту... в чем верстают в том и получают.

Stampede
А если фотошопом нарезать? и сохранить для web? Там все эти инструменты есть и все они прекрасно работают...

Автор: Stampede 22.9.2005, 14:48
Спасибо, братцы, все получилось!


Greendrake, получаешь первый плюс. С почином!

Всем остальным: я ведь привел самый урезанный, минимально необходимый код, чтобы продемонстрировать нежелательный эхфект. А так я уже два дня мудохался: и размеры все прописывал, и марджины, и бодеры, и паддинги - ничего не помогало. Ан оказывается вон где собака порылась. Red Dragon, таки точно уверен, что это моих рук геометрия? smile

Про doctype - не понял, о чем речь. Dreaweaver вообще ни при чем - все всегда пишу руками.

Еще раз всем спасибо!

Автор: Дрон 22.9.2005, 17:24
Цитата(Stampede @ 22.9.2005, 15:48)
Про doctype - не понял, о чем речь.

Он имеет ввиду, что тип документа указан HTML, а тэг img написан как для XHTML smile

В HTML пишется <img src="..." > без косой черты.

Автор: dm9 22.9.2005, 17:45
Цитата
В HTML пишется <img src="..." > без косой черты.


В HTML пишется и так, и так.


Автор: Дрон 22.9.2005, 17:49
Цитата(dm9 @ 22.9.2005, 18:45)
В HTML пишется и так, и так.

И где об этом сказано?

Сейчас глянул спецификацию HTML 4.01 -- там такого нет.

Автор: Sardar 22.9.2005, 22:49
Цитата(dm9 @ 22.9.2005, 16:45)
В HTML пишется и так, и так.

В HTML косой черты вообще нет, в SGML есть, но это NET конструкция, по идее браузер '/>' по моему как '>&gt;' должен понимать. Xорошо что бродилки не врубаються, хотя валидатор будет ругаться, например если теги link и т.п. в head секции такую черту содержат.

Автор: Gold Dragon 23.9.2005, 08:35
Народ, давайте раз и навсегда определимся HTML и XML имеют разный синтаксис. Если браузеры игнорируют
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
...
<img src="square.gif" />
...
то это не значит, что это правильно

вот вам ответ валидатора

Код

character data is not allowed here.

<img src="1.gif" alt="" border="0"/>

You have used character data somewhere it is not permitted to appear. 
Mistakes that can cause this error include putting text directly in the body of the document 
without wrapping it in a container element (such as a <p>aragraph</p>) or forgetting to
quote an attribute value (where characters such as "%" and "/" are common, but cannot 
appear without surrounding quotes).

Автор: dm9 23.9.2005, 11:50
Red Dragon, прочитай хотя бы что написал smile

Валидатор как раз не ругается.

Возможно, я был не прав, заявив столь категорично про то, что и там и там можно писать <img />, но валидатор на это НЕ ругается!

Да, в head ругается. И про это есть даже отдельный пункт в ФАКе W3C.

А на <img />, <hr />, <br /> - не ругается.


Автор: Дрон 23.9.2005, 12:03
Вот тут кое-что об этом пишут.

http://www.cs.tut.fi/~jkorpela/html/empty.html

Цитата
Moreover, what <hr /> means in HTML (as opposite to what browsers display, and as opposite to XHTML) is
<hr>>


Т.е. похоже, что в примере Red Dragon валидатор ругался на >. Т.к. интерпертация тэга закончилась уже после косой черты.

Автор: dm9 23.9.2005, 12:17
Ребята, да вы хоть прочитайте, что там имелось в виду, блин! Скорее всего Red Dragon положил картинку прямо в body, без блочного контейнера.

Цитата(Red @ 23.9.2005, 09:35)
You have used character data somewhere it is not permitted to appear.
Mistakes that can cause this error include putting text directly in the body of the document
without wrapping it in a container element (such as a <p>aragraph</p>) or forgetting to
quote an attribute value (where characters such as "%" and "/" are common, but cannot
appear without surrounding quotes).


Вот этот код полностью валиден по мнению валидатора:

Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
   <HEAD>
      <TITLE>My first HTML document</TITLE>
      <META http-equiv="content-type" content="text/html; charset=windows-1251">
   </HEAD>
   <BODY>
      <div>
         <img src="1.gif" alt="" />
      </div>
   </BODY>
</HTML>


Автор: Gold Dragon 23.9.2005, 12:19
На сколько я правильно понял, по касая черта не может появляться в теге без кавычек

а вот что даёт валидатор HomeSite
Код

The tag: "img" has an XML style closing syntax for an empty element even though version: "HTML4" is not an XML tag language.  

Автор: Дрон 23.9.2005, 12:45
dm9
Ты не прав.


Попробуй провалидировать вот это:
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>HR demo</title>
</head>
<body>
<hr />
<img src="" alt="" />
</body>
</html>


Вот одна из ошибок:
document type does not allow element "IMG" here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "DIV", "ADDRESS" start-tag.
Да, надо бы в DIV заключить.

Но две других:

character data is not allowed here.
<hr />

character data is not allowed here.
<img src="" alt="" />

Автор: dm9 23.9.2005, 13:16
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd">    
<html>    
<head>    
<title>HR demo</title>    
</head>    
<body>
<div>    
<hr />    
<img src="" alt="" />    
</div>
</body>    
</html>


This Page Is Tentatively Valid -//W3C//DTD HTML 4.01 Strict//EN

Если поставишь кодировку ещё, будет 100% валид.

Добавлено @ 13:17
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd">    
<html>    
<head>    
<title>HR demo</title>    
<META http-equiv="content-type" content="text/html; charset=windows-1251">
</head>    
<body>
<div>    
<hr />    
<img src="" alt="" />    
</div>
</body>    
</html>


This Page Is Valid -//W3C//DTD HTML 4.01 Strict//EN!

Автор: Дрон 23.9.2005, 13:25
Так внутри DIV, конечно, всякие символы разрешены.

А в моём примере валидатор на том и спотыкается, что > не является частью тэга и не разрешён в body!!!

Ты бы ещё внутри <!-- --> проверял smile

Автор: dm9 23.9.2005, 13:54
smile

Так див же обязателен smile)

Ты попробуй так отвалидировать smile)

Код

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd">    
<html>    
<head>    
<title>HR demo</title>    
<META http-equiv="content-type" content="text/html; charset=windows-1251">
</head>    
<body>
<img src="" alt="">    
</body>    
</html>


Автор: Дрон 23.9.2005, 14:28
Хмм...

Тут валидатор говорит о том, что похоже тэг img не закрыт.
МОгу предположить, что он действительно тупит из-за того, что имг расположет там, где не должен быть.

Но замени img на hr и сравни:

<hr> - ок
<hr/> - облом, потому как воспринимается как <hr/ и отдельно >
<hr /> - ок -- вот здесь видимо всё-таки для совместимости оставили smile

В итоге получаем.
Де-юре (по спеке) в HTML нет синтаксиса <hr />, но де-факто он всеми поддерживается smile

Автор: Alx 23.2.2006, 00:01
боже, ну и чушь. извините конечно... можт, я и скряга, но я лучше пошлю все эти валидности к чертяс обачим чем столько мучится из-за таких мелочей smile smile smile smile smile

Автор: Guedda 23.2.2006, 12:32
И правильно сделаешь smile
Зациклились на этом валидаторе, хотя и без него прекрасно работает все smile

Автор: R.M. 23.2.2006, 22:55
Во-во к чему эти стандарты??? Всё пашет что <img> что <img/> что <img /> во всех браузерах одинаково а валидность это так потипу "модно" (ИМХО)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)