CSS。谁能告诉我这段代码中的函数?我找不到

标签 css web navbar

所以我在我的网站上用 CSS 实现了一个下拉菜单, 这个功能在导航栏上。

当我为此苦恼时,我的 friend 为我做了一些代码,但我无法在产生下拉效果的 CSS 代码中找到。 它完全可以正常工作,只需要帮助找到下拉属性,这样我就可以从中学习。

谢谢。

ul {
 text-align: left;
 display: inline;
 margin: 0;
 padding: 15px 4px 17px 0;
 list-style: none;
 -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.15);
 -moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.15);
 box-shadow: 0 0 5px rgba(0, 0, 0, 0.15);
 text-decoration: none;
  }

ul li {
 font: bold 12px/18px sans-serif;
 display: inline-block;
 margin-right: -4px;
 position: relative;
 padding: 15px 20px;
 background: #000000;
 color: #fff;
 cursor: pointer;
 -webkit-transition: all 0.2s;
 -moz-transition: all 0.2s;
 -ms-transition: all 0.2s;
 -o-transition: all 0.2s;
 transition: all 0.2s;
 text-decoration: none;
  }

  ul li:hover {
    background: #6d1022;
    color: #fff;
  }

  ul li ul {
     padding: 0;
    position: absolute;
    top: 48px;
    left: 0;
    width: 150px;
    -webkit-box-shadow: none;
    -moz-box-shadow: none;
    box-shadow: none;
    display: none;
    opacity: 0;
    visibility: hidden;
    -webkit-transiton: opacity 0.2s;
    -moz-transition: opacity 0.2s;
    -ms-transition: opacity 0.2s;
    -o-transition: opacity 0.2s;
    -transition: opacity 0.2s;
    text-decoration: none;
     }

  ul li ul li { 
    background: #000000; 
    display: block; 
    color: #fff;
     }

  ul li ul li:hover { background: #6d1022; }

  ul li:hover ul {
    display: block;
    opacity: 1;
    visibility: visible;
     }

最佳答案

HTML/CSS 下拉列表的关键部分是嵌套列表。主要元素在顶级列表 ul li 中,子菜单是顶级 ul li 中的 ul 元素的一部分,默认情况下这些是隐藏的-

所以你有结构:

ul
-li
--ul <-- hidden with display:none
---li <-- hidden due to parent ul being hidden

您可以在此处的 CSS 中看到此效果:

ul li ul {
    padding: 0;
    position: absolute;
    top: 48px;
    left: 0;
    width: 150px;
    -webkit-box-shadow: none;
    -moz-box-shadow: none;
    box-shadow: none;
    display: none; /* <---- here */
    opacity: 0;
    visibility: hidden;
    -webkit-transiton: opacity 0.2s;
    -moz-transition: opacity 0.2s;
    -ms-transition: opacity 0.2s;
    -o-transition: opacity 0.2s;
    -transition: opacity 0.2s;
    text-decoration: none;
}

当顶级 ul li 元素悬停时,您希望显示子列表,您可以在这里看到:

ul li:hover ul {
    display: block; /* <--- here */
    opacity: 1;
    visibility: visible;
}

它执行以下操作:

ul
-li:hover <-- trigger applying display:block to child ul
--ul <-- shown with display:block
---li <-- shown due to parent ul being shown

关于CSS。谁能告诉我这段代码中的函数?我找不到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23385179/

相关文章:

javascript - 如何在对底层 Div 产生模糊效果后获得模糊效果

javascript - 避免多次加载 javascript 文件

用于网站的 Facebook Insights API

javascript - Bootstrap 导航栏无法使用 JavaScript 添加事件

css - 未设置 HTML CSS 多类宽度/高度/大小

javascript - 在事件监听器中使用闭包时如何在 Google Map 上定义自定义大小

javascript - Bootstrap 4 轮播淡入淡出动画无法正常工作

javascript - 垂直反向滚动和水平滚动

css - Bootstrap : using both the top and bottom fixed navbar for different widths

jquery - 多级下拉 Bootstrap