← HTML <ruby> 标签 HTML <samp> 标签 →

HTML <s> 标签

原创 2025-09-18 HTML 已有人查阅

HTML <s> 标签使用指南:正确标记不再准确的内容

在网页开发中,我们经常需要表示某些内容已经过时或不准确,这时候HTML的<s>标签就派上用场了。这个标签用于给文本添加删除线效果,表示相关内容不再准确或有效,但并非被删除的内容。

s标签的基本概念

<s>标签是一个内联元素,需要同时使用开始标签和结束标签。浏览器默认会为其中的文本添加删除线样式。

<del>标签不同,<s>并不表示内容被删除或移除,而是表示内容仍然存在但已不再准确或相关。这是两者之间最重要的区别。

基本语法和使用

<s>这里放置不再准确的内容</s>

下面是一个简单的示例:

<!DOCTYPE html>
<html>
<head>
    <title>代码号编程教程:s标签示例</title>
    <style>
        body {
            font-family: "Microsoft YaHei", sans-serif;
            line-height: 1.6;
            max-width: 800px;
            margin: 0 auto;
            padding: 20px;
        }
        h1 {
            color: #2c3e50;
            border-bottom: 2px solid #3498db;
            padding-bottom: 10px;
        }
        .outdated {
            color: #7f8c8d;
        }
        .updated {
            color: #27ae60;
            font-weight: bold;
        }
    </style>
</head>
<body>
    <h1>代码号编程课程更新通知</h1>
    
    <p><s class="outdated">HTML基础课程将于2025年1月15日开始报名</s></p>
    <p class="updated">HTML基础课程报名时间已调整为2025年2月10日开始</p>
    
    <p><s>课程资料请前往FTP服务器下载</s></p>
    <p>所有课程资料已迁移至代码号在线学习平台,请登录下载</p>
</body>
</html>

s标签与del标签的区别

很多初学者容易混淆<s><del>标签,其实它们有明确的语义差异:

  • <del>表示从文档中删除的内容,通常用于显示文档修订过程

  • <s>表示不再准确或相关的内容,但并没有从文档中删除

举个例子来说明:

<p>代码号编程入门课程价格:<s>¥299</s> 现价:¥199</p>

<p>网页设计课程包含以下内容:<del>Flas制作</del> CSS动画高效</p>

第一个例子使用s标签表示原价格已失效但仍然是历史记录的一部分;第二个例子使用del表示Flas制作已从课程内容中移除。

样式自定义技巧

虽然浏览器会为s标签提供默认的删除线样式,但我们可以通过CSS来自定义外观:

<!DOCTYPE html>
<html>
<head>
    <title>代码号学习编程:s标签样式自定义</title>
    <style>
        s {
            color: #95a5a6;
            text-decoration: line-through;
            text-decoration-color: #e74c3c;
            text-decoration-thickness: 2px;
        }
        
        .custom-style {
            color: #3498db;
            text-decoration: line-through wavy #e74c3c;
        }
        
        .highlight-outdated {
            background-color: #fff3cd;
            padding: 2px 5px;
            border-radius: 3px;
        }
    </style>
</head>
<body>
    <h2>代码号课程更新日志</h2>
    
    <p><s>JavaScript进阶课程使用ES5语法</s></p>
    
    <p><s class="custom-style">Python数据分析课程使用Python 3.7</s></p>
    
    <p><s class="highlight-outdated">网页设计课程包含IE浏览器兼容性部分</s></p>
    
    <p>所有课程已更新至版本和标准</p>
</body>
</html>

本节课程知识要点

  1. 语义化使用s标签具有明确的语义,应该仅在表示不再准确或相关的内容时使用,不要单纯为了装饰目的而使用。

  2. 可访问性考虑:屏幕阅读器可能会以不同方式处理s标签内容,确保使用场景符合语义。

  3. CSS样式优先级s标签的默认样式可以被CSS覆盖,但要注意保持删除线的视觉效果确保语义明确。

  4. 与del标签区分:根据内容是否被删除来选择使用sdel标签,不要混淆使用。

应用场景

根据我的开发经验,<s>标签在以下场景中特别有用:

  1. 电商网站:显示商品原价和折扣价时,原价使用s标签

  2. 新闻网站:更新报道时标记之前的不准确信息

  3. 教程文档:标记已过时的方法或API

  4. 活动页面:表示已结束或改期的活动信息

举个例子,在代码号编程教程中:

<div class="course-info">
    <h3>Web前端开发课程</h3>
    <p><s>课程包含jQuery内容</s></p>
    <p>已更新为现在JavaScript框架(Vue/React)内容</p>
    <p>学习时长: <s>60小时</s> 更新后: 80小时</p>
</div>

常见问题与解决方案

问题1:删除线样式不显示
解决方案:检查是否有其他CSS样式覆盖了text-decoration属性,尝试使用更具体的选择器。

问题2:与其他内联元素样式冲突
解决方案:将s标签包裹在span标签内,或者为s标签添加特定class进行样式控制。

问题3:语义使用不当
解决方案:仔细考虑内容是否真的不再准确,还是应该使用del或其他标签。

浏览器兼容性说明

s标签在所有现在浏览器中都有良好的支持,包括Chrome、Firefox、Safari、Edge和IE9及以上版本。对于需要支持更旧浏览器的情况,可以考虑添加额外的CSS样式:

s {
    text-decoration: line-through;
}

s标签是HTML中一个有用但常被忽视的语义化元素。正确使用它不仅可以提升页面的语义价值,还能帮助用户更好地理解内容的状态和变化。

在实际项目中,建议仅在内容确实不再准确或相关时使用s标签,避免滥用。同时,通过适当的CSS样式,可确保删除线效果在不同浏览器中保持一致的外观。

← HTML <ruby> 标签 HTML <samp> 标签 →
分享笔记 (共有 篇笔记)
验证码:
微信公众号