当前位置: 首页 > 面试题库 >

在Firefox中以“ 0s”转换为单位

王才英
2023-03-14
问题内容

为什么没有单元的情况下,以下转换在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;
}

我为与当前问题无关的大量``样式’‘表示歉意。但是我使用的样式和失败的转换之间可能存在耦合,所以我将完整的代码包括在内。这也是样式更漂亮的菜单:)


问题答案:

虽然CSS值和单位未明确表示不允许无单位零倍,但它确实说长度和角度
允许无单位零。我认为这意味着任何其他尺寸或数量都不允许使用无单位零,因为在规范中的其他任何地方都不会涉及无单位零。因此,不允许对时间属性使用无单位零。1个

因此,如果为time属性指定了零而没有单位,则该声明无效并且应完全忽略,这是Firefox所做的。在这种情况下,Firefox正确遵循了标准,而所有其他浏览器均存在问题。

1
似乎CSS原本打算在听觉样式表中允许无单位的零时间值以及其他几个不同的单位。这可以解释为什么其他浏览器选择允许无单位零次。但是,由于听觉样式表现在已过时,因此该部分不再是规范性的,因此该规则不再适用。具有讽刺意味的是,任何主流浏览器都没有实现过听觉风格表(嗯,除了Opera之外……)。



 类似资料:
  • 问题内容: 我正在尝试为此寻找替代方案: 在 firefox中, 因为它仅适用于webkit浏览器。 我已经尝试过不透明度选项,但是那对我来说不是一个选择,因为我在背景容器中有内容,如果使用不透明度,它将与背景一起消失。 谢谢。 问题答案: 您可以使用2个伪元素来做到这一点 CSS (悬停过渡) 为了能够看到div的内容,伪元素必须位于负的z-index中: 看起来IE不会触发此悬停 但会触发这一

  • 问题内容: 如何将String 列表转换为数组?以下代码返回错误。 错误: 问题答案: 你要 有关文档,请参见此处,请注意,您也可以以填充已传递数组的方式调用此方法,而不仅仅是使用它来计算要返回的类型。另请注意,也许当您打印阵列时,您更喜欢 因为那将打印实际的元素。

  • 问题内容: 我有一个名为 test_duration bigint(12) 的数据列。我将以秒为单位的时间存储到数据库中。现在,当我从表中获取记录时,我希望将时间转换为HH:MM:SS格式。我应该如何实现呢?提前致谢。 问题答案: 您可以使用 MySQL 函数SEC_TO_TIME()。 例子: 输出为: 因此,在您的情况下:

  • 问题内容: 我正在尝试将以单词形式编写的数值转换为整数。例如,“ iPhone有233.7万个应用程序”将变成“ iPhone为230783个应用程序” 在开始编码之前,我想知道此转换是否存在任何功能/代码。 问题答案: 有很多页面讨论从数字到单词的转换。反方向的数量不多。 以获取一种不错的算法: 好吧,总的来说,您正在做两件事:查找标记(转换为数字的单词)和应用语法。简而言之,您正在为一种非常有

  • 我在玩r2dc for spring boot java应用程序。 我在想,如果可能的话,可以把通量转换成Mono来进行某种计算。 伪示例:

  • 问题内容: 我在Oracle 中将MSSTAMP设置 为“带有毫秒的时间戳”,格式:1483228800000。如何将该毫秒时间戳转换为日期格式“ YYYY- MM”,以便获得前几年每月的已完成行数。 我尝试了TO_DATE,CAST,TO_CHAR的不同变体-但无法正常工作。 问题答案: 如果您只需要将自纪元以来的毫秒数转换为日期,则: 哪个输出: 您只需要年月,然后使用或即可。 如果您需要处理