友情链接应使用语义化<footer>而非<div class="footer">,因其明确表达页脚区域的逻辑含义,但需注意<footer>仅表语义结尾,非视觉固定定位,须配合CSS(如flex或min-height)实现底部布局;其内不宜嵌套<nav>或<aside>,推荐用<div class="links">包裹更可控。
<footer> 还是 <div class="footer">?直接用语义化 <footer> 更合理,但要注意它默认不是“粘在页面底部”的——很多人误以为放 <footer> 就自动到底部,其实它只是内容区的逻辑结尾。真要“页脚固定在视口底”,得靠 CSS 控制布局流或高度计算。
常见错误:把友情链接塞进 <footer> 后发现它紧贴主内容下方,页面短时悬浮在中间;页面长时又被正文撑开、位置正常——这说明没处理最小高度或 flex 布局。
<body> 内按顺序写 <main> + <footer>,再用 CSS 让 <body> 或 <main> 占满剩余高度flex: 1,改用 min-height: calc(100vh - footer高度)
<footer> 里别套 <nav> 或 <aside>,友情链接本质是外部资源引用,用 <div class="links"> 包一层更可控display: inline-block 和 flex 哪个更稳?flex 是首选,尤其当链接文字长度不一、需要等宽或换行对齐时。inline-block 看似简单,但受 HTML 换行符和字体基线影响,容易出现意外间隙,还得额外清空 font-size: 0 或注释掉空白符。
实操建议:
立即学习“前端免费学习笔记(深入)”;
display: flex,子项用 flex: 1 实现等分(适合 3–5 个链接);若数量不定,改用 flex-wrap: wrap + flex-basis: 200px
<a> 直接设 width,改用 min-width 配合 text-align: center 防止文字溢出@media (max-width: 768px) 把 flex-direction: column,否则小屏挤成一行滚动target="_blank" 有什么安全风险?直接写 target="_blank" 会让新页面获得 window.opener 权限,恶意站点可能调用 opener.location = "https://phishing.site" 劫持原页面——这不是理论漏洞,Chrome/Firefox 已实际拦截过此类攻击。
必须同时加 rel="noopener noreferrer":
noopener 切断 window.opener 引用,防止跳转劫持noreferrer 避免 Referer 泄露当前页面路径(比如含用户 ID 的 URL)rel="noopener",旧版 Safari 对单个值支持不稳定,双写最稳妥示例代码:<a href="https://example.com" target="_blank" rel="noopener noreferrer">示例站点</a>
移动端手指点击区域至少 44×44px,但默认 <a> 文字高度远小于此,导致点不准、误触返回。不能只靠加大 font-size,那会破坏排版节奏。
padding: 12px 16px(上下留白保证热区,左右适配文字),再用 line-height: 1.5 控制行高text-decoration: underline,改用 border-bottom: 1px solid #007bff 并设 padding-bottom: 2px,这样下划线也参与热区计算overflow: hidden 截断,特别是用了 flex + min-width 组合时,热区可能被裁剪真正难的是响应式断点之间的过渡态——比如 iPad 竖屏 768×1024,既不算手机也不算桌面,得单独测 @media (min-width: 768px) and (max-width: 1024px) 下的 padding 和 font-size。