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

CSS从无显示过渡到显示块,使用subnav导航

严曜文
2023-03-14
问题内容

这就是我的jsFiddle链接

nav.main ul ul {

    position: absolute;

    list-style: none;

    display: none;

    opacity: 0;

    visibility: hidden;

    padding: 10px;

    background-color: rgba(92, 91, 87, 0.9);

    -webkit-transition: opacity 600ms, visibility 600ms;

            transition: opacity 600ms, visibility 600ms;

}



nav.main ul li:hover ul {

    display: block;

    visibility: visible;

    opacity: 1;

}


<nav class="main">

    <ul>

        <li>

            <a href="">Lorem</a>

            <ul>

                <li><a href="">Ipsum</a></li>

                <li><a href="">Dolor</a></li>

                <li><a href="">Sit</a></li>

                <li><a href="">Amet</a></li>

            </ul>

        </li>

    </ul>

</nav>

为什么没有过渡?如果我设置

nav.main ul li:hover ul {
    display: block;
    visibility: visible;
    opacity: 0; /* changed this line */
}

然后,“ subnav”将永远不会出现(当然),但是为什么不触发不透明度转换呢?如何使过渡正常工作?


问题答案:

如您所知,display仅在CSS中将该属性设置为动画时,它会覆盖visibilityopacity过渡。

解决方案…只是删除了display属性。

nav.main ul ul {

  position: absolute;

  list-style: none;

  opacity: 0;

  visibility: hidden;

  padding: 10px;

  background-color: rgba(92, 91, 87, 0.9);

  -webkit-transition: opacity 600ms, visibility 600ms;

  transition: opacity 600ms, visibility 600ms;

}

nav.main ul li:hover ul {

  visibility: visible;

  opacity: 1;

}


<nav class="main">

  <ul>

    <li>

      <a href="">Lorem</a>

      <ul>

        <li><a href="">Ipsum</a>

        </li>

        <li><a href="">Dolor</a>

        </li>

        <li><a href="">Sit</a>

        </li>

        <li><a href="">Amet</a>

        </li>

      </ul>

    </li>

  </ul>

</nav>


 类似资料:
  • 问题内容: 我目前正在设计CSS“巨型下拉菜单”-基本上是一个常规的仅CSS下拉菜单,但其中包含不同类型的内容。 目前, 似乎CSS 3过渡不适用于’display’属性 ,即,您不能进行从到(或任何组合)的任何过渡。 当有人将鼠标悬停在顶层菜单项之一上时,是否可以通过上述示例使第二层菜单“淡入”? 我知道您可以在属性上使用过渡,但我想不出一种有效使用过渡的方法。 我也尝试过使用高度,但是那不幸地

  • 问题内容: 每当我将其悬停在其父元素上时,我一直试图使用css来显示Hidden Div淡入。 到目前为止,我所能做的就是让隐藏的div显示出来,但是到目前为止,还没有轻松的过渡。 这是我的代码: HTML: CSS: 关于我在做什么错的任何线索吗?当我将鼠标悬停在按钮上时,只是试图为隐藏的内容提供平滑的效果。提前致谢! 问题答案: 从页面中删除一个块,就好像它从来没有出现过一样。块不能部分显示;

  • 问题内容: 我在这里有一个有效的代码:(您可能需要将结果窗口放大以查看居中对齐效果) 题 该代码工作正常,但我不喜欢这样。这是使环绕类对齐中心的唯一方法。我认为,如果有一种使用方法或更好。是否可以用其他方法解决对齐中心? 对我来说,向容器添加一个固定的不是一个选择。 如果将来JS Fiddle链接损坏,我还将在这里粘贴代码: 问题答案: 可接受的解决方案对我而言不起作用,因为我需要一个子元素在10

  • 出于某种原因,我使用引导主题的导航栏没有显示为块。我正在使用我的index.html页面的轮播模板,并希望在我的其余页面上使用相同的主题,只是没有轮播。然而,当我拿出旋转木马时,我的第二个div坐在我的导航栏下。 下面是我导航栏的代码: 还有一个指向我的小提琴的链接,我的CSS位于引导CSS之上: https://jsfiddle.net/czz2Lm1n/

  • 问题内容: 我有一个div的CSS动画,经过一定时间后会滑入。我想要几个div填充滑入的动画div的空间,然后它将这些元素向下推到页面上。 当我在第一个div尝试此操作时,即使看不见,幻灯片仍会占用空间。如果我将div更改为div,则根本不会滑入。 我如何让div在不定时的情况下不占用空间(使用CSS进行计时)。 我正在为动画使用Animate.css。 代码如下所示: 如代码所示,我希望隐藏主d

  • 我们在HTML块级和内联元素课程中已经了解HTML元素主要有两种类型:块级(block-level) 和 内联(inline)。也提到了一些变体:列表项(list-item) 或 表格单元(table-cell). 缺省情况下,一个段落(paragraph)<p> 将拥有一个默认的 display 属性值:block,不过 <p> 也可以被渲染成一个内联(inline)元素: p{ display