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

HTML+CSS+JavaScript

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

 

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

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

тема: Почему броузер не показывает z-index ?
 
 автор: coloboc66   (15.04.2008 в 17:23)   письмо автору
 
 

<div id='my'>
aaa
</div>
<script>
alert(document.getElementById('my').style.z-index);
</script>

Пробовал назначать, но всё равно не показывает, пишет: "неизвестная переменная index"...

   
 
 автор: CNTv2.0   (15.04.2008 в 17:32)   письмо автору
 
   для: coloboc66   (15.04.2008 в 17:23)
 

document.getElementById('my').style.zIndex

Свойства CSS для JScripta ВСЕГДА не имеют дефиса (ибо дефис в JScript'e - это оператор "минус") и ВСЕГДА следующие за дефисом символы переводятся в верхний регистр

   
 
 автор: coloboc66   (15.04.2008 в 17:49)   письмо автору
 
   для: CNTv2.0   (15.04.2008 в 17:32)
 

О блин: "Век живи - век учись." А почему тогда теперь показывает "undefined" ? Ведь по умолчанию должно присваиваться?

   
 
 автор: CNTv2.0   (15.04.2008 в 18:11)   письмо автору
 
   для: coloboc66   (15.04.2008 в 17:49)
 

когда прописываете объект.style.свойство, то браузер ищет то, что НЕПОСРЕДСТВЕННО приписано в коде HTML в атрибуте STYLE.
Если указанное свойство НЕПОСРЕДСТВЕННО не прописано (а назначено по умолчанию или прописано где-то в CSS), то тогда значение свойства будет именно undefined.

Чтобы узнать фактическое (на данный момент) значение свойства, необходимо прописывать объект.currentStyle.свойство - и это сработает только для MSIE.

Для Mozilla обращение иное - document.defaultView.getComputedStyle (объект, null).getPropertyValue ("название свойства в формате CSS")).

Для вашего примера:
alert (document.getElementById ('my').currentStyle.zIndex); //для MSIE
alert (document.defaultView.getComputedStyle (document.getElementById ('my'), null).getPropertyValue ("z-index")); //для Mozilla

   
 
 автор: coloboc66   (16.04.2008 в 10:02)   письмо автору
 
   для: CNTv2.0   (15.04.2008 в 18:11)
 

Aлерт выдаёт не число, а "auto" . А как получить число?

   
 
 автор: aexb   (16.04.2008 в 12:23)   письмо автору
 
   для: coloboc66   (16.04.2008 в 10:02)
 

Приведите пример куска CSS, отвечающего за <div id="my">

   
 
 автор: coloboc66   (16.04.2008 в 13:41)   письмо автору
 
   для: aexb   (16.04.2008 в 12:23)
 

да в общем нет CSS, есть только
<body>
<div>
...
</div>
<div id="my" >
...
</div>
</body>

   
 
 автор: CNTv2.0   (16.04.2008 в 14:21)   письмо автору
 
   для: coloboc66   (16.04.2008 в 10:02)
 

По умолчанию в Mozilla для любого объекта z-index имеет значение auto.
Соответственно, это значение вы и получите при запросе.

Кроме свойства z-index, есть еще довольно много свойств у объектов, которые не имеют дефолтного численного значения, а имеют именно auto.

   
 
 автор: coloboc66   (16.04.2008 в 15:13)   письмо автору
 
   для: CNTv2.0   (16.04.2008 в 14:21)
 

То есть, если я явно не задам в коде номер z-index, то увидеть ничего не смогу? Кстати, задавал и явно, всё-равно получаю auto.

   
 
 автор: CNTv2.0   (17.04.2008 в 05:17)   письмо автору
 
   для: coloboc66   (16.04.2008 в 15:13)
 

>Кстати, задавал и явно, всё-равно получаю auto
А врать-то зачем?
<html>
<head>
<script>
function f (x)
{
var br = (navigator.userAgent.indexOf ('MSIE') > 0) ? 1 : 0;
var re = (br) ?
   (document.getElementById (x).currentStyle.zIndex) :
   (document.defaultView.getComputedStyle (document.getElementById (x), null).getPropertyValue ('z-index'));
alert (re);
}
</script>
<style>
div {margin: 10pt; padding: 10pt; background: yellow}
.i22 {z-index: 22}
</style>
</head>
<body onload="document.getElementById ('on').style.zIndex = 33">
Кликни по DIV'у для проверки
<div id="def" onclick="f (this.id)">по умолчанию = auto || 0</div>
<div id="inl" style="z-index: 11" onclick="f (this.id)">прописан явно = 11</div>
<div id="emb" class="i22" onclick="f (this.id)">прописан в стилях = 22</div>
<div id="scr" onclick="f (this.id)">назначен скриптом = 33</div>
</body>
</html>

   
Rambler's Top100
вверх

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