【问题标题】:Subnav impossible to hover because of CSS style由于 CSS 样式,子导航无法悬停
【发布时间】:2020-11-22 00:12:06
【问题描述】:

我必须使用 CSS 样式在现有导航中添加子导航才能到达 php 页面。

现有导航是:nav > ul > li > a href (ok)

我做到了:

 nav > ul > li > a href (ok)
 nav > ul > li > ul > li > a href (ko)

我实际上不能用光标悬停href(ko):items subnav消失了! 我用 CSS 样式搜索,但我不太明白它是如何工作的。

我想点击下面子导航中链接的 2 个页面: accountCustomerAll.phpserviceViewAll.php

如果你有想法...

这是我的 HTML 代码:

/* Nav Meu Styling */
.nav-menu li a {
  padding: 0px;
  text-decoration: none;
  display: inline-block;
  color: #222222;
  font-weight: 500;
  font-size: 12px;
  text-transform: uppercase;
  outline: none;
  -webkit-transition: all 0.3s ease 0s;
  -moz-transition: all 0.3s ease 0s;
  -o-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s; }
  .nav-menu li a.active, .nav-menu li a:hover {
    color: #0093df !important; }

.nav-menu li:hover > a {
  color: #000; }

.nav-menu > li {
  margin-left: 30px; }

.nav-menu ul {
  margin: 28px 0 0 0;
  padding: 10px;
  box-shadow: 0px 0px 30px rgba(127, 137, 161, 0.25);
  background: #fff; }

.nav-menu ul li {
  transition: 0.3s; }

.nav-menu ul li a {
  padding: 5px 10px;
  color: #333;
  transition: 0.3s;
  display: block;
  font-size: 12px;
  text-transform: none; }

.nav-menu ul li:hover > a {
  color: #0093df; }

.nav-menu ul ul {
  margin-right: 10px;
  margin-top: 0; }
<nav id="nav-menu-container">
<ul class="nav-menu">
  <li><a>Gérer l'Aérodrome</a>
        <ul>
            <li><a href="accountCustomerAll.php">Consulter les clients</a></li>
            <li><a href="serviceViewAll.php">Consulter les commandes</a></li>
        </ul>
    </li>
</ul>
</nav>

【问题讨论】:

  • 你能分享Codepen 或类似的东西来查看问题吗?
  • 不,我不遗憾。问题是当我想单击 2 个 php 页面的链接时,光标手形图标会打开箭头图标。
  • created one 无法使用您获得的信息重现问题。你为什么用&lt;a href=\"\"&gt;而不是&lt;a href=""&gt;
  • 所以它似乎来自其他文件可能......
  • 代码在一个php页面的一个php变量中。不同的配置文件的用户有一些不同的标题

标签: html css


【解决方案1】:

这可能对您有所帮助。您必须在内部&lt;ul&gt; 上应用不同的css

/*   /* Nav Meu Styling */
        .nav-menu li {
            float: left;
            list-style: none;           }

        .nav-menu li a {
            padding: 0px;
            text-decoration: none;
            display: inline-block;
            color: #222222;
            font-weight: 500;
            font-size: 12px;
            text-transform: uppercase;
            outline: none;
            -webkit-transition: all 0.3s ease 0s;
            -moz-transition: all 0.3s ease 0s;
            -o-transition: all 0.3s ease 0s;
            transition: all 0.3s ease 0s;
        }

        .nav-menu li a.active,
        .nav-menu li a:hover {
            color: #0093df !important;
        }

        .nav-menu li:hover>a {
            color: #000;
        }

        .nav-menu>ul {
            padding: 10px;
            box-shadow: 0px 0px 30px rgba(127, 137, 161, 0.25);
            background: #fff;
        }

        .nav-menu ul li {
            transition: 0.3s;
            transition: 0.3s;
            width: 75%;
        }

        .nav-menu ul li a {
            padding: 5px 10px;
            color: #333;
            transition: 0.3s;
            display: block;
            font-size: 12px;
            text-transform: none;
        }

        .nav-menu ul li:hover>a {
            color: #0093df;
        }

        .nav-menu ul ul {
            margin-right: 10px;
            margin-top: 0;
        }

        .sub-menu {
            display: none;
        }

        .sub-menu>li {
            list-style: none;
            float: left;
        }

        ul.nav-menu li a:hover+ul.sub-menu {
            display: block;
        }

        ul.sub-menu:hover {
            display: block;
        }
 <nav id="nav-menu-container">
        <ul class="nav-menu">
            <li><a>Gérer l'Aérodrome</a>
                <ul class="sub-menu">
                    <li><a href="accountCustomerAll.php">Consulter les clients</a></li>
                    <li><a href="serviceViewAll.php">Consulter les commandes</a></li>
                </ul>
            </li>
          
        </ul>
    </nav>

【讨论】:

    【解决方案2】:

    .nav-menu li a.active, .nav-menu li a:hover{ color: #0093df !important;}

    Buggy :active,应该是:

    .nav-menu li a:active, .nav-menu li a:hover{ color: #0093df}
    

    请不要使用!importand,而是调试。
    嵌套结构很难维护,更容易

    <ul><li>  <ol><li> ... </li></ol></li></ul>
    

    绝对允许在没有数字的情况下设置&lt;ol&gt; 的样式。

    【讨论】:

    • 感谢您的回复。对不起,我现在才看到他们。我注意到您的解决方案(子菜单或不使用“!important”关键字)如果我使用或不使用它不会改变结果。出现了一个奇怪的问题:显示菜单是因为 php 中有一个命令“echo $header”,但我需要刷新 html 页面(使用 Ctrl + F5)才能看到主菜单项右侧的箭头(“Gere l'aerodrome ") 访问子菜单。如果我不这样做,一开始也是同样的问题。我还没有解决这个新问题。
    • 对于 Sohail Ahmed:在 CSS 中,我从您的代码中添加了这 4 项:“sub-menu”、“sub-menu>li”、“ul.nav-menu li a:hover+ul. sub-menu ", "ul.sub-menu:hover" 和我在 html 代码中添加了 "
    猜你喜欢
    • 2013-01-08
    • 1970-01-01
    • 2017-09-30
    • 2013-04-09
    • 1970-01-01
    • 2012-03-31
    • 2017-04-03
    • 1970-01-01
    • 2013-11-08
    相关资源
    最近更新 更多