Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Свойство height при заданном width в Хроме равно нулю

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Romeo4755
Отправлено: 05 Января, 2016 - 19:21:15
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Окт. 2015  


Помог: 0 раз(а)




Здравствуйте.
Вот такая ситуация: помещаю абсолютно позиционированные картинки на заданной высоте. При этом из этой заданной высоты вычитаю высоту каждой картинки, чтобы они были выровнены по нижнему краю. Вот так:
CODE (javascript):
скопировать код в буфер обмена
  1.    document.getElementById ("tit2").style.top = otstupsverhu - parseInt (document.getElementById ("tit2").height) +'px';


Размеры картинок не заданы, задана только ширина в процентах в стиле. В эксплорере высота меняется пропорционально ширине и численное ее значение выражается целым числом. Вот как срабатывает в эксплорере:
CODE (javascript):
скопировать код в буфер обмена
  1. alert (document.getElementById ("tit1").height);

(увидите, если откроете в эксплорере):
http://itisenglish[dot]ru/Sticker/St[dot][dot][dot]3_Mysteries[dot]html

В хроме не заданная высота считается равной нулю. Само изображение при этом отображается правильно и пропорционально и совсем не с нулевой высотой, а вот численная величина высоты равна 0
(можно видеть, если открыть ту же ссылку в Хроме).
Соответственно изображения (заголовки колонок) стоят не по нижнему, а по верхнему краю.
Я не могу понять, как это может зависеть от браузера. Работает ведь JS скрипт. Я пробовала присвоить высоту значением переменной - то же самое.
CODE (javascript):
скопировать код в буфер обмена
  1. var innvar = document.getElementById ("tit1").height;
  2. alert (innvar);


Хотелось бы понять, что происходит.
 
 Top
tuareg
Отправлено: 05 Января, 2016 - 23:12:31
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Я бы добавил в событие загрузки
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. document.getElementById ("tit2").onload = function(){
  3. document.getElementById ("tit2").style.top = otstupsverhu - parseInt (document.getElementById ("tit2").height) +'px';
  4. }
  5.  

Как то так.
 
 Top
Romeo4755
Отправлено: 06 Января, 2016 - 20:45:44
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Окт. 2015  


Помог: 0 раз(а)




tuareg пишет:
Я бы добавил в событие загрузки
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. document.getElementById ("tit2").onload = function(){
  3. document.getElementById ("tit2").style.top = otstupsverhu - parseInt (document.getElementById ("tit2").height) +'px';
  4. }
  5.  

Как то так.


Спасибо.
Я уже поняла, что дело в скорости загрузки - пока картинки не выведены на экран значений параметров нет.
Но onload к элементу что-то у меня ненадежно работает в разных браузерах.
Вставила присвоение всех величин в функцию, которая присвоена body (onload="...).
Я хочу на всякий случай спросить уважаемых форумчан: переменные внутри функций, определены они или нет, имеют значение только при обращении к функции? То есть, если в функции ранее по тексту есть document.getElementById ("tit2") (например, скрипт в Голове штимля), а сам элемент "tit2" в html еще не появлялся (например, он в Теле Штимля) - это ничего страшного? Главное, что когда к функции будет обращение, "tit2" уже прочитается обработчиком?

И вот еще непонятно: событие в штимле onload считает только загрузку элементов веб-содержимого или также js-скрипты? Показывается ошибка в функции, которая выполняется по событию onload тела штимля - якобы эелементы не предельны. Этим элементам присваивается значение в скрипте, который срабатывает в конце тела штимля. Может такое быть, что событие onload запускается, когда обрабботчик не прочел еще скрипт в конце (указание на внешний файл js точнее)?

(Отредактировано автором: 07 Января, 2016 - 15:32:14)

 
 Top
DelphinPRO
Отправлено: 08 Января, 2016 - 12:11:48
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




раз - http://htmlbook[dot]ru/html/attr/onload
два - https://learn[dot]javascript[dot]ru/onload-onerror
три - https://developer[dot]mozilla[dot]org/ru[dot][dot][dot]tHandlers/onload

и еще больше в гугле.
Это самые основы. про них не спрашивают. Про них читают с документации.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB