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

HTML+CSS+JavaScript

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

 

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

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

тема: doctype режет height="100%", как обойти?
 
 автор: Mpak   (08.05.2009 в 20:21)   письмо автору
 
 

Возможно тема уже поднималась нираз, но так и не смог найти подходящего работающего решения.
Волей случая добровольно-принудительно решил привести все к стандарту =) Исправил все ошибки, обрадовался... НО поехало одно место. Доктайп мне обрезал свойство height у ячейки и (или) картинки.
см. картинку
<!DOCTYPE html
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Использую изображение толщиной в пару пикселей и растягиваю его на всю высоту. Все "ок" без доктайпа, но надо бы с ним...

таблица у меня сама растянута как надо, я не могу растянуть именно изображение в ячейке. (фиксированную высоту задать не могу)
Причем если хотя бы в одном месте (у дива, тдшки, изображения) ставлю высоту в пикселях все замечательно работает. Но блин.. надо в процентах иначе со сменой размера окна все едет :(
html, body {
   height: 100%;
   margin:0;
   padding:0;
}
#container {
   min-height: 760px;
   height: 760px;
}
* html #container {
   height:100%
}

<table border="0" width="99%" id="container">
<!-- skip //-->
<tr><td id="table_menu" valign="top" align="right">
<table width="100%" border="1" class="nocs">
<!-- skip //-->
<tr>
 <td height="100%">
                  <div style="position: relative; height: 100%">
                  <img src="img/'.$dir.'/'.$shadow.'/leftline'.$ext.'" height="100%" class="shadow" width="'.$hw_s.'px" alt="."/>
                  <img src="img/'.$dir.'/leftline.gif"    height="100%" class="border" width="'.$hw.'px" style="top: 0; left: '.$hw_diff.'px;" alt="."/>
                  </div>
 </td>
 <td style="background-image: url(img/'.$dir.'/bg.gif);" valign="top"><div style="padding-right: 2px;'.$minheight.'">Г Л А В Н А Я</td>
 <td height="100%">
                  <div style="position: relative;">
                  <img src="img/'.$dir.'/'.$shadow.'/rightline'.$ext.'" height="100%" class="shadow" width="'.$hw_s.'px" alt="."/>
                  <img src="img/'.$dir.'/rightline.gif"    height="100%" class="border" width="'.$hw.'px" style="top: 0; left: 0;" alt="."/>
                  </div>
 </td>
</tr>
<!-- skip //-->
</table>
</td></tr>
<!-- skip //-->
</table>

  Ответить  
 
 автор: PAT   (08.05.2009 в 21:09)   письмо автору
 
   для: Mpak   (08.05.2009 в 20:21)
 

ПЕРВОЕ:
Проценты в атрибутах/свойствах height и width всех элементов, кроме тега IMG,
высчитываются от размеров родительского элемента.

Перечитайте это правило раза три и... вообразите себя браузером.

И потом идите от того элемента, где вам что-то "урезали" выше по иерархии и попробуйте
смотреть ГЛАЗАМИ БРАУЗЕРА - а везде ли и всё ли точно вами определено?

Не забудьте ещё, что при интерпретации таблиц браузер самостоятельно вписывает в ваш
код теги <TBODY> и </TBODY>, кои тоже должны быть определены по высоте/ширине.


ВТОРОЕ:
Для тега IMG указание какого-либо ОДНОГО атрибута/свойства (width или height)
интерпретируется как попытка пропорционально изменить размер картинки ОТНОСИТЕЛЬНО ЕЁ
ИСХОДНЫХ РАЗМЕРОВ. Указание одновременно двух размеров приведёт к искажению картинки
опять же ОТНОСИТЕЛЬНО ЕЁ ИСХОДНЫХ РАЗМЕРОВ.

Т.е. указанное вами height="100%" в теге IMG НИКАКОГО отношения к размерам родительского
элемента НЕ ИМЕЕТ, а говорит браузеру о том, что он должен отобразить картинку ТОЧНО в таких
же размерах, в которых она хранится на сервере.

  Ответить  
 
 автор: Mpak   (08.05.2009 в 22:55)   письмо автору
 
   для: PAT   (08.05.2009 в 21:09)
 

угу... отчасти понял, что к чему. Только не понял будет ли воспринята процентная высота картинки?

  Ответить  
 
 автор: DJ Paltus   (09.05.2009 в 20:48)   письмо автору
 
   для: PAT   (08.05.2009 в 21:09)
 

>Т.е. указанное вами height="100%" в теге IMG НИКАКОГО отношения к размерам родительского
>элемента НЕ ИМЕЕТ, а говорит браузеру о том, что он должен отобразить картинку ТОЧНО в таких
>же размерах, в которых она хранится на сервере.
А Вы не ошибаетесь? Я при помощи <img src="img/mainbg.jpg" style="z-index:0;" height=100% width=100% align=center /> делаю растянутый бэкграудн обычно. Как-то работает... Правда, доктайп отключаю.

  Ответить  
 
 автор: Mpak   (09.05.2009 в 21:48)   письмо автору
 
   для: DJ Paltus   (09.05.2009 в 20:48)
 

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

  Ответить  
 
 автор: mihdan   (12.05.2009 в 11:57)   письмо автору
 
   для: Mpak   (08.05.2009 в 20:21)
 

в xhtml не существует понятия height для td, th, tr, table

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 


заметьте, без указания url

http://validator.w3.org
http://xhtml.ru/2005/12/12/body_height_research
http://macedu.org.ru/static/web/xhtml-ref.html

  Ответить  
 
 автор: Mpak   (13.05.2009 в 01:29)   письмо автору
 
   для: mihdan   (12.05.2009 в 11:57)
 

Премного благодарен! :) А не подскажете почему без урл?

  Ответить  
Rambler's Top100
вверх

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