Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Расшифровать Яваскрипт в стиле


Автор: Golovastik 17.9.2010, 11:34
Код


*html body { 
    width:expression((document.body.parentNode.offsetWidth<1000)?'1000px':'auto'); 
}


а)объясните пожалуйста этот код, что означает width  и что такое expresion,
почему после width идёт двоеточие?Что такое auto?
б) Как может в стилях быть Яваскрипт?

Автор: crang 17.9.2010, 11:39
беглый поиск в гугле очень помогает ;)

http://www.google.com.ua/#hl=ru&source=hp&q=css+expression&aq=0&aqi=g10&aql=&oq=css+exp&gs_rfai=&fp=6bad3cfb48fdbcd

Автор: CruorVult 17.9.2010, 11:41
expression позволяет использовать JS в стилях.
Код

document.body.parentNode.offsetWidth<1000)?'1000px':'auto'

означает: получаем ширину родителя элемента, и если она меньше 1000 - то выставляем '1000px' иначе ширину по умолчанию(auto)

Автор: Golovastik 17.9.2010, 11:52
parentNode - это метод объекта боди?
offsetHeight - свойство метода parentNode?

Автор: CruorVult 17.9.2010, 11:56
parentNode - cвойство, которое содержит ссылку на узел, являющийся родительским по отношению к данному

хотя оно в данно случае и не надо, можно просто:
Код

document.body.offsetWidth<1000


Добавлено @ 12:00
Цитата(Golovastik @  17.9.2010,  11:52 Найти цитируемый пост)
offsetHeight - свойство метода parentNode?

parentNode - это не метод а свойство, которое возвращает объект, в данном случае объект HTML . А offsetHeight  - высота HTML что соответствует высоте BODY.

Автор: Golovastik 17.9.2010, 12:20

То есть document.body.parentNode.offsetWidth<1000)

В объекте под названием document находиться внутренний объект под названием body,
в этом внутреннем объекте находиться свойство parentNode но не метод, а в этом
свойстве находиться внутренне свойство offsetWidth?

Автор: CruorVult 17.9.2010, 12:26
что-то типа того. Лучше всего почитайте основы JS, про DOM, может немного прояснится.

Автор: Golovastik 17.9.2010, 12:28
Свойство - это переменная объявленная в классе. 
то есть если взять  этот кусок
parentNode.offsetWidth
Вы горите это свойство в свойстве, переменная в переменной что ли?
Как такое может быть?

Автор: CruorVult 17.9.2010, 13:33
parentNode - ссылка на объект, возвращет объект
Код


var htmlObj = document.body.parentNode; //htmlObj  это объект HTML
var objWidth = htmlObj.offsetWidth //ширина объекта HTML


Цитата(Golovastik @  17.9.2010,  12:28 Найти цитируемый пост)
Вы горите это свойство в свойстве, переменная в переменной что ли?

в переменной может храниться другой объект, в данном случае в parentNode хранится другой объет, который имеет свойство offsetWidth

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