Единицы на переходе "0с" в Firefox
Почему следующий переход не работает в Firefox без модулей? Как только вы добавляете единицы, это работает. Кажется, что другие крупные браузеры равнодушны к устройствам.
Насколько я знаю, это единственный пример времени перехода "0", без единиц измерения, не работающих в Firefox.
Вы можете видеть, что это работает, и с единицами, здесь в JSFiddle.
А вот такой же точный код без блоков и с ошибками на JSFiddle.
Как видите, Firefox - единственный браузер, который, похоже, ломается. Кроме того, вот код:
HTML:
<nav>
<ul id="nav">
<li>
<a href="#" id="nav1">Home</a>
</li>
<li>
<a href="pasta.html" id="nav2">Charters</a>
<ul>
<li><a href="#">New Groups</a></li>
<li><a href="#">Current Groups</a></li>
</ul>
</li>
<li>
<a href="same.php" id="nav3">Funding</a>
<ul>
<li><a href="#">Funding Guide</a></li>
<li><a href="#">Get Funding</a></li>
<li><a href="#">Treasurers</a></li>
<li><a href="#">Calendar</a></li>
</ul>
</li>
<li>
<a href="#" id="nav4">Accounts</a>
</li>
<li>
<a href="magis2.swf" id="nav5">Services</a>
<ul>
<li><a href="#">Shuttle Service</a></li>
<li><a href="#">Van Reservations</a></li>
<li><a href="#">Rattech</a></li>
<li><a href="#">Sound System</a></li>
</ul>
</li>
</ul>
</nav>
CSS:
/****************************
Functionality
*****************************/
/* Menu header */
#nav > li {
float: left;
margin: 0 19px;
padding: 0 1px 19px 0;
position: relative;
}
/* Dropdown elements */
#nav > li:hover ul {
opacity: 1;
visibility: visible;
-webkit-transition-delay: 0, 0;
/*Remove the units here and in the next selector to break it*/
-moz-transition-delay: 0s, 0s;
-o-transition-delay: 0, 0;
transition-delay: 0, 0;
}
#nav ul {
visibility: hidden;
z-index: 1000;
width: 140px;
padding: 8px 0;
position: absolute;
top: 35px;
left: -35px;
opacity: 0;
background-color: #fff;
border: 1px solid #aaa;
border-radius: 2px;
box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.3);
-webkit-transition-property: opacity, visibility;
-moz-transition-property: opacity, visibility;
-o-transition-property: opacity, visibility;
transition-property: opacity, visibility;
-webkit-transition-duration: .2s, 0;
/*Remove the units here and below to break it*/
-moz-transition-duration: .2s, 0s;
-o-transition-duration: .2s, 0;
transition-duration: .2s, 0;
-webkit-transition-delay: 0, .2s;
/*Remove the units here and below to break it*/
-moz-transition-delay: 0s, .2s;
-o-transition-delay: 0, .2s;
transition-delay: 0, .2s;
}
/*********
Style (this should be irrelevant)
*********/
a {
color: #000;
display: block;
font-size: 13px;
text-decoration: none;
font-family: 'Georgia', serif;
}
#nav ul a {
font-size: 12px;
padding: 10px 18px;
}
#nav ul li:hover {
background: #e9e9e9;
}
nav {
width: 470px;
height: 45px;
margin-top: 40px;
margin-left: 10px;
}
Я прошу прощения за большое количество "стиля", который не зависит от рассматриваемой проблемы. Но может быть связь между стилем, который я использую, и неудачным переходом, поэтому я включаю код полностью. Это также намного красивее меню со стилем:)
1 ответ
В то время как CSS Значения и Единицы явно не говорят, что безразмерные нули не допускаются, он говорит, что безразмерные нули разрешены для длин и углов. Я полагаю, что это подразумевает, что нулевые единицы не допускаются ни для какого другого измерения или количества, потому что нулевые единицы не учитываются нигде в спецификации. Следовательно, наличие нулевого единицы для свойства времени не допускается. 1
Таким образом, если для свойства времени указан ноль без единицы, объявление является недействительным и должно быть полностью проигнорировано, что и делает Firefox. В этом случае Firefox правильно следует стандарту, в то время как все остальные браузеры содержат ошибки.
1 Похоже, что CSS изначально намеревался разрешить безразмерные нулевые значения времени - наряду с несколькими другими различными единицами - в слуховых таблицах стилей. Это может объяснить, почему другие браузеры выбирают нулевое время без единиц измерения. Однако, поскольку таблицы стилей слуха теперь устарели, этот раздел больше не является нормативным, и поэтому правила там больше не применяются. Чтобы добавить к иронии, ни один из основных браузеров так или иначе не реализовал звуковые таблицы стилей (ну, кроме Opera, может быть...).