You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让圆形logo的CSS box-shadow显示在导航栏下方实现整体融合效果

问题根因

  1. <img>属于替换元素,本身不支持:before、:after伪元素,你之前给.logo(绑定在img标签上)写的伪元素样式完全不会生效,这是阴影直接消失的核心原因。
  2. 父级导航栏.topnav没有配置正确的定位和堆叠上下文,导致z-index层级表现不符合预期。

解决方案

你只需要给logo套一层容器,把阴影配置在容器上,调整层级即可实现导航栏和logo阴影统一的效果,修改后的代码如下:

修改后的HTML代码

<!DOCTYPE html>
<html lang="en-UK">
<head>
    <title>WOW</title>
    <link rel="icon" href="icon.png">
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <nav class="topnav">
        <!-- 新增logo容器 -->
        <div class="logo-wrap">
            <img class="logo" src="icon.png">
        </div>
    </nav>
</body>
</html>

修改后的CSS代码

html{
    overflow-y: scroll;
}
body {
    font-family: "Arial", Helvetica, sans-serif;
    font-weight: bold;
    font-size: 20px;
    color: #DCDCDC;
    background-color: #222035;
    margin: 0px;
}
.centered {
    position: absolute;
    left: 50%;
    transform: translate(-50%);
}
/* 新增logo容器样式 */
.logo-wrap {
    position: relative;
    top: 100%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: fit-content;
    height: 100%;
    border-radius: 100%;
    box-shadow: 0 2vh 5vh #000000;
    z-index: 1;
}
.logo {
    height: 100%;
    width: auto;
    border-radius: 100%;
}
.topnav {
    position: relative;
    box-shadow: 0px 2vh 5vh #000000;
    width: 100%;
    height: 15vh;
    background-color: #222035;
}
header {
    padding: 170px;
}

效果说明

导航栏本身的阴影和logo容器的阴影参数完全一致,会自然衔接成统一的阴影效果,logo本身正常显示在导航栏中部突出位置,视觉上是一个整体对象。

内容的提问来源于stack exchange,提问作者SuitYourself

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 02:54:03