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

为何<aside>元素仅为首个<li>添加边框?技术求助

问题解决:aside边框仅显示在首个li上的原因及修复

问题描述

用<aside>包裹所有<li>列表项,通过CSS给<aside>添加上下边框,但页面中只有第一个<li>能呈现aside的边框效果。尝试给每个<li>单独嵌套<aside>无效,Chrome DevTools排查也没定位到原因。

错误代码

HTML

<aside>
      <h5><strong>Related posts</strong></h5>
      <ul>
        
        <li class="related-post">
          <img
            src="img/mantyping.jpg"
            alt="mantyping"
            width="100"
            height="70"
          />
          <div>
          <a href="Howtolearnwebdevelopment.html" class="related-link"
            >How to learn web development</a
          >
          <p class="related-author"><strong>By Jonas Schmed</strong></p>
        </li>
        </div>

        <li class="related-post">
          <img
            src="img/csspower.jpg"
            alt="lightning"
            width="100"
            height="70"
          />
          <div>
          <a href="Unknownpowersofcss.html" class="related-link"
            >The unknown powers of css</a
          >
          <p class="related-author"><strong>By Jim Dillon</strong></p>
        </li>
        </div>

        <li class="related-post">
          <img
            src="img/javascriptcode.png"
            alt="javascript code"
            width="100"
            height="70"
          />
          <div>
          <a href="javascriptisawesome.html" class="related-link"
            >Why Javascript is awesome</a
          >
          <p class="related-author"><strong>By Matilda</strong></p>
        </li>
      </div>

      </ul>
    </aside>

CSS

aside {
background-color: #f7f7f7;
border-top: 5px solid #1098ad;
border-bottom: 5px solid #1098ad;
padding: 50px;
width: 500px;
}

问题根源

HTML标签嵌套错误:每个<li>内部的<div>闭合标签</div>都写在了</li>之后,违反了HTML的嵌套规则。浏览器会自动修正错误结构,导致后面的<li>被排除在<ul>和<aside>的正常布局流之外,因此只有第一个<li>处于aside的样式覆盖范围内。

修复方案

调整<div>的闭合位置,将</div>移到对应的</li>之前,保证标签正确嵌套:

修正后的HTML

<aside>
  <h5><strong>Related posts</strong></h5>
  <ul>
    <li class="related-post">
      <img
        src="img/mantyping.jpg"
        alt="mantyping"
        width="100"
        height="70"
      />
      <div>
        <a href="Howtolearnwebdevelopment.html" class="related-link"
          >How to learn web development</a
        >
        <p class="related-author"><strong>By Jonas Schmed</strong></p>
      </div>
    </li>

    <li class="related-post">
      <img
        src="img/csspower.jpg"
        alt="lightning"
        width="100"
        height="70"
      />
      <div>
        <a href="Unknownpowersofcss.html" class="related-link"
          >The unknown powers of css</a
        >
        <p class="related-author"><strong>By Jim Dillon</strong></p>
      </div>
    </li>

    <li class="related-post">
      <img
        src="img/javascriptcode.png"
        alt="javascript code"
        width="100"
        height="70"
      />
      <div>
        <a href="javascriptisawesome.html" class="related-link"
          >Why Javascript is awesome</a
        >
        <p class="related-author"><strong>By Matilda</strong></p>
      </div>
    </li>
  </ul>
</aside>

CSS无需修改。

修正后,所有<li>都会正常包含在<ul>和<aside>内部,aside的边框、背景等样式会正确覆盖整个列表区域,所有列表项都能显示在aside的样式范围内。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 21:18:21