是否可以仅使用CSS在悬停时显示分隔符?

是否可以仅使用CSS在悬停时显示分隔符?,css,Css,使用来自的技术,我有一个漂亮的对齐菜单栏 但是,我想在鼠标悬停时出现的条目之间添加分隔符 结果非常糟糕: <div id="menu"> <ul> <li> Item </li> <li> Menu </li> <li> Link <

使用来自的技术,我有一个漂亮的对齐菜单栏

但是,我想在鼠标悬停时出现的条目之间添加分隔符

结果非常糟糕:

<div id="menu">
    <ul>
        <li>
            Item
        </li>
        <li>
            Menu
        </li>
        <li>
            Link
        </li>
        <li>
            Asdf
        </li>
      </ul>

        <span></span>
</div>
上面的问题是边框在菜单项之间没有居中


这在javscript中当然是可行的,但我想知道纯CSS是否可行。

要解决这一问题,可以在li中添加填充

#menu li {
    display: inline-block;
    color:white;
    padding: 0 20px;
}
然后在悬停中调用相同的填充,但也

 #menu li:hover {
     color:blue;
     border-left:1px solid black;
     border-right:1px solid black;

 }
问题是它会在其他导航项目中产生轻微抖动。所以,如果你愿意的话,你可以加-1的保证金来解决这个问题。这就是我认为你想要的。如果我不正确,请详细说明你的问题

以下是我收到的输入的编辑。 我还包括一个过渡

#menu li {
    display: inline-block;
    color:white;
    padding: 0 20px;
    border-left:1px solid rgba(255, 255, 255, 0);
    border-right:1px solid rgba(255, 255, 255, 0);
}
悬停状态

#menu li:hover {
    transition: border-color 0.5s ease;
    color:blue;
    border-left:1px solid rgba(255, 255, 255, 1);
    border-right:1px solid rgba(255, 255, 255, 1);
}
谢谢你,迪奥迪厄斯

JSFIDLE

要解决这个问题,可以做的一件事是在li中添加填充

#menu li {
    display: inline-block;
    color:white;
    padding: 0 20px;
}
然后在悬停中调用相同的填充,但也

 #menu li:hover {
     color:blue;
     border-left:1px solid black;
     border-right:1px solid black;

 }
问题是它会在其他导航项目中产生轻微抖动。所以,如果你愿意的话,你可以加-1的保证金来解决这个问题。这就是我认为你想要的。如果我不正确,请详细说明你的问题

以下是我收到的输入的编辑。 我还包括一个过渡

#menu li {
    display: inline-block;
    color:white;
    padding: 0 20px;
    border-left:1px solid rgba(255, 255, 255, 0);
    border-right:1px solid rgba(255, 255, 255, 0);
}
悬停状态

#menu li:hover {
    transition: border-color 0.5s ease;
    color:blue;
    border-left:1px solid rgba(255, 255, 255, 1);
    border-right:1px solid rgba(255, 255, 255, 1);
}
谢谢你,迪奥迪厄斯

JSFIDLE

要解决这个问题,可以做的一件事是在li中添加填充

#menu li {
    display: inline-block;
    color:white;
    padding: 0 20px;
}
然后在悬停中调用相同的填充,但也

 #menu li:hover {
     color:blue;
     border-left:1px solid black;
     border-right:1px solid black;

 }
问题是它会在其他导航项目中产生轻微抖动。所以,如果你愿意的话,你可以加-1的保证金来解决这个问题。这就是我认为你想要的。如果我不正确,请详细说明你的问题

以下是我收到的输入的编辑。 我还包括一个过渡

#menu li {
    display: inline-block;
    color:white;
    padding: 0 20px;
    border-left:1px solid rgba(255, 255, 255, 0);
    border-right:1px solid rgba(255, 255, 255, 0);
}
悬停状态

#menu li:hover {
    transition: border-color 0.5s ease;
    color:blue;
    border-left:1px solid rgba(255, 255, 255, 1);
    border-right:1px solid rgba(255, 255, 255, 1);
}
谢谢你,迪奥迪厄斯

JSFIDLE

要解决这个问题,可以做的一件事是在li中添加填充

#menu li {
    display: inline-block;
    color:white;
    padding: 0 20px;
}
然后在悬停中调用相同的填充,但也

 #menu li:hover {
     color:blue;
     border-left:1px solid black;
     border-right:1px solid black;

 }
问题是它会在其他导航项目中产生轻微抖动。所以,如果你愿意的话,你可以加-1的保证金来解决这个问题。这就是我认为你想要的。如果我不正确,请详细说明你的问题

以下是我收到的输入的编辑。 我还包括一个过渡

#menu li {
    display: inline-block;
    color:white;
    padding: 0 20px;
    border-left:1px solid rgba(255, 255, 255, 0);
    border-right:1px solid rgba(255, 255, 255, 0);
}
悬停状态

#menu li:hover {
    transition: border-color 0.5s ease;
    color:blue;
    border-left:1px solid rgba(255, 255, 255, 1);
    border-right:1px solid rgba(255, 255, 255, 1);
}
谢谢你,迪奥迪厄斯

JSFIDLE
这里的问题是,您选择的技术无法用元素填充整个空间,而只是进行分发。如果您不必支持IE7或更低版本,我建议使用
表格单元格
解决方案,那么
边框
可以按照您想要的方式工作:

#menu li {
    display: table-cell;
    width:1%;
    color:white;
    border:1px solid transparent;
    text-align:center;
    cursor:pointer;
}

检查此项

这里的问题是您选择的技术无法用元素填充整个空间,而只是进行分发。如果您不必支持IE7或更低版本,我建议使用
表格单元格
解决方案,那么
边框
可以按照您想要的方式工作:

#menu li {
    display: table-cell;
    width:1%;
    color:white;
    border:1px solid transparent;
    text-align:center;
    cursor:pointer;
}

检查此项

这里的问题是您选择的技术无法用元素填充整个空间,而只是进行分发。如果您不必支持IE7或更低版本,我建议使用
表格单元格
解决方案,那么
边框
可以按照您想要的方式工作:

#menu li {
    display: table-cell;
    width:1%;
    color:white;
    border:1px solid transparent;
    text-align:center;
    cursor:pointer;
}

检查此项

这里的问题是您选择的技术无法用元素填充整个空间,而只是进行分发。如果您不必支持IE7或更低版本,我建议使用
表格单元格
解决方案,那么
边框
可以按照您想要的方式工作:

#menu li {
    display: table-cell;
    width:1%;
    color:white;
    border:1px solid transparent;
    text-align:center;
    cursor:pointer;
}


检查此

FYI您的HTML格式不正确。您没有
标记,
作为
元素的子元素无效,并且。。。你的css坏了<代码>#菜单li{…font}不完整我认为我们都足够聪明来解决这个问题,并在不指出细微错误的情况下给@gandalf3必要的反馈。仅供参考,您的HTML格式不正确。您没有
标记,
作为
元素的子元素无效,并且。。。你的css坏了<代码>#菜单li{…font}不完整我认为我们都足够聪明来解决这个问题,并在不指出细微错误的情况下给@gandalf3必要的反馈。仅供参考,您的HTML格式不正确。您没有
标记,
作为
元素的子元素无效,并且。。。你的css坏了<代码>#菜单li{…font}不完整我认为我们都足够聪明来解决这个问题,并在不指出细微错误的情况下给@gandalf3必要的反馈。仅供参考,您的HTML格式不正确。您没有
标记,
作为
元素的子元素无效,并且。。。你的css坏了<代码>#菜单li{…font}不完整我认为我们都足够聪明,能够解决这个问题,并在不指出细微错误的情况下向@gandalf3提供必要的反馈……或者,你可以在非悬停状态中添加一个透明的边框。这同样有效。谢谢你指出这一点……或者你可以只在非悬停状态中添加一个透明的边框。这同样适用于。谢谢你指出这一点……或者你可以只在非悬停状态中添加一个透明的边框。这同样适用于。谢谢你指出这一点……或者你可以只在非悬停状态中添加一个透明的边框。这同样适用于。谢谢你指出这一点。