我希望我的活动元素在上面有一条垂直线,我得到了一个提示,在CSS中使用:before:after来生成这条线.然而,我对这两个标签并不太熟悉,我也try 过使用:after,但它似乎不起作用.你能给我一些建议吗?下面是它应该是什么样子的设计示例.

Design Example

.nav-menu{
    background: var(--unnamed-color-ffffff);
    flex: 1;
    justify-content: space-between;
    padding-top: 2.3rem;
    width: 91.5rem;
}

.nav-menu .icon{
    width: 2.0rem;
    height: 2.0rem;
    margin-right: 1.5rem;
}

.nav-menu .nav-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.nav-menu .nav-list .nav-item{
    display: inline-block;
}

.nav-menu .nav-list .nav-item .nav-link {
    display: inline-block;
    text-decoration: none;
    color: black;
}

.nav-menu .nav-list .nav-item .active {
    color: red;
}

.nav-menu .nav-list .nav-item .active ::after {
    content: '';
    border-left: 0.1rem solid red;
    height: 1.5rem;
    position: absolute;
    left: 50%;
    top: 0;
}
        <nav class="nav-menu d-flex" id="nav-menu">
            <ul class="nav-list">
                <li class="nav-item">
                    <a href="#home" class="nav-link  active">one</a>
                </li>
                <li class="nav-item">
                    <a href="#about" class="nav-link">two</a>
                </li>
                <li class="nav-item">
                    <a href="#service" class="nav-link">three</a>
                </li>
                <li class="nav-item">
                    <a href="#promotion" class="nav-link">four</a>
                </li>
                <li class="nav-item">
                    <a href="#customer" class="nav-link">five</a>
                </li>
                <li class="nav-item">
                    <a href="#contact" class="nav-link">six</a>
                </li>
            </ul>

        </nav>

推荐答案

在使用position:absolute的父对象上使用active:beforeposition:relative.下面是一个代码示例:

.nav-menu{
    background: var(--unnamed-color-ffffff);
    flex: 1;
    justify-content: space-between;
    padding-top: 2.3rem;
    width: 91.5rem;
}

.nav-menu .icon{
    width: 2.0rem;
    height: 2.0rem;
    margin-right: 1.5rem;
}

.nav-menu .nav-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.nav-menu .nav-list .nav-item{
    display: inline-block;
}

.nav-menu .nav-list .nav-item .nav-link {
    display: inline-block;
    text-decoration: none;
    color: black;
}

.nav-menu .nav-list .nav-item .active {
    color: red;
    position: relative;
}

.nav-menu .nav-list .nav-item .active::before {
    content: '';
    border-left: 0.1rem solid red;
    height: 1.5rem;
    position: absolute;
    left: 50%;
    bottom: 100%;
}
<nav class="nav-menu d-flex" id="nav-menu">
            <ul class="nav-list">
                <li class="nav-item">
                    <a href="#home" class="nav-link  active">one</a>
                </li>
                <li class="nav-item">
                    <a href="#about" class="nav-link">two</a>
                </li>
                <li class="nav-item">
                    <a href="#service" class="nav-link">three</a>
                </li>
                <li class="nav-item">
                    <a href="#promotion" class="nav-link">four</a>
                </li>
                <li class="nav-item">
                    <a href="#customer" class="nav-link">five</a>
                </li>
                <li class="nav-item">
                    <a href="#contact" class="nav-link">six</a>
                </li>
            </ul>

        </nav>

Html相关问答推荐

如何打破长URL,包含连字符在HTML与CSS

如何让一个动态列表以网格方式水平显示

如何使div按钮链接到另一个网页

<;img>;和具有负边距的元素的堆叠顺序

如何使用HTML和css代码在vb.net上打印POS

如何在垂直堆叠的表格中调整人造列的大小?

Html视频标签:圆角像素化

带有下拉菜单的完整css导航-链接不起作用?

HTML,CSS-阻止按钮在单击时向上移动

CSS 伪类 Select 器未按预期工作

在 WooCommerce 存档产品类别描述上添加阅读更多/阅读更少按钮

HTML 重定向到当前服务器

主要元素内滚动时,固定导航栏会消失

如何使用CSS Select 表亲元素

屏幕缩小时背景图像裁剪高度

如何将图像移动到父容器的右侧?

font awesome 的 CDN/CSS 如何工作?

动态使用时波浪号不转换为绝对路径

隐藏弹出元素上的滚动条

在标题后面显示下拉菜单