← CSS checkbox 复选框样式 CSS 导航栏设计 →

CSS letter-spacing 属性

原创 2025-09-07 CSS 已有人查阅

CSS letter-spacing 属性详解:文字间距控制指南

属性概述

letter-spacing 是 CSS 中用于控制文本字符间间距的属性,它能够调整元素内文字字符之间的空间距离。通过这个属性,我们可以增加或减少文本中字符之间的间隔,从而改变文本的整体视觉效果和阅读体验。

该属性直接影响相邻字符之间的空间分布,是文本排版中微调文字外观的重要工具。

语法结构

selector {
  letter-spacing: normal | length | initial | inherit;
}

属性值说明

  • normal:默认值,字符之间使用字体设计的自然间距,相当于设置值为 0

  • length:指定字符之间的额外空间,允许使用负值使文本看起来更紧凑

    • 支持相对单位:em, rem

    • 支持绝对单位:px, pt, cm 等

  • initial:设置属性为默认值

  • inherit:从父元素继承该属性值

基础应用示例

下面通过一个简单示例展示不同 letter-spacing 值的效果:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>CSS letter-spacing 属性示例 - 代码号编程学习</title>
    <style>
        body {
            font-family: 'Microsoft YaHei', sans-serif;
            max-width: 800px;
            margin: 0 auto;
            padding: 20px;
            line-height: 1.6;
        }
        
        h1 {
            color: #2c3e50;
            text-align: center;
            border-bottom: 2px solid #3498db;
            padding-bottom: 10px;
        }
        
        .example-container {
            background-color: #f8f9fa;
            border-radius: 8px;
            padding: 20px;
            margin: 20px 0;
            box-shadow: 0 2px 5px rgba(0,0,0,0.1);
        }
        
        .normal { letter-spacing: normal; }
        .tight { letter-spacing: -1px; }
        .wide { letter-spacing: 5px; }
        .very-wide { letter-spacing: 10px; }
        .em-wide { letter-spacing: 0.5em; }
        
        .example-box {
            margin: 15px 0;
            padding: 15px;
            background-color: white;
            border-left: 4px solid #3498db;
        }
        
        .code {
            font-family: 'Courier New', monospace;
            background-color: #eee;
            padding: 2px 5px;
            border-radius: 3px;
        }
    </style>
</head>
<body>
    <h1>CSS letter-spacing 属性学习示例</h1>
    
    <div class="example-container">
        <h2>letter-spacing 效果演示</h2>
        
        <div class="example-box">
            <p class="normal"><span class="code">letter-spacing: normal;</span> - 这是默认间距的文本效果,适合正常阅读。</p>
        </div>
        
        <div class="example-box">
            <p class="tight"><span class="code">letter-spacing: -1px;</span> - 这是紧凑间距的文本效果,字符更加紧密。</p>
        </div>
        
        <div class="example-box">
            <p class="wide"><span class="code">letter-spacing: 5px;</span> - 这是宽松间距的文本效果,字符间有明显间隔。</p>
        </div>
        
        <div class="example-box">
            <p class="very-wide"><span class="code">letter-spacing: 10px;</span> - 这是极大间距的文本效果,可能影响阅读流畅性。</p>
        </div>
        
        <div class="example-box">
            <p class="em-wide"><span class="code">letter-spacing: 0.5em;</span> - 使用相对单位(em)设置的间距,会随字体大小变化。</p>
        </div>
    </div>
</body>
</html>

实际应用场景

标题设计优化

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>letter-spacing在标题设计中的应用 - 代码号编程学习</title>
    <style>
        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            max-width: 800px;
            margin: 0 auto;
            padding: 20px;
            background-color: #f5f7fa;
        }
        
        .header-design {
            text-align: center;
            margin: 30px 0;
        }
        
        .main-title {
            font-size: 2.5rem;
            letter-spacing: 4px;
            color: #2c3e50;
            text-transform: uppercase;
            margin-bottom: 10px;
        }
        
        .subtitle {
            font-size: 1.2rem;
            letter-spacing: 2px;
            color: #7f8c8d;
            font-weight: 300;
        }
        
        .compact-title {
            font-size: 2rem;
            letter-spacing: -0.5px;
            color: #e74c3c;
            font-weight: bold;
        }
        
        .design-principles {
            background-color: white;
            padding: 25px;
            border-radius: 8px;
            box-shadow: 0 3px 10px rgba(0,0,0,0.1);
            margin-top: 30px;
        }
        
        .principle {
            margin: 15px 0;
            padding-left: 20px;
            border-left: 3px solid #3498db;
        }
    </style>
</head>
<body>
    <div class="header-design">
        <h1 class="main-title">编程学习之路</h1>
        <p class="subtitle">探索代码的无限可能</p>
        <h2 class="compact-title">紧凑而有力的标题样式</h2>
    </div>
    
    <div class="design-principles">
        <h3>标题设计原则:</h3>
        
        <div class="principle">
            <h4>扩大间距提升形式感</h4>
            <p>对大字号的标题适当增加 letter-spacing,可以增强标题的形式感和设计感,常用于主标题设计。</p>
        </div>
        
        <div class="principle">
            <h4>紧缩间距增强冲击力</h4>
            <p>对需要强调的标题适当减少 letter-spacing,可以使文字看起来更加紧凑有力,增强视觉冲击力。</p>
        </div>
        
        <div class="principle">
            <h4>保持正文可读性</h4>
            <p>正文内容通常使用默认或接近默认的间距值,保证可读性和阅读舒适度。</p>
        </div>
    </div>
</body>
</html>

品牌标识与LOGO设计

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>letter-spacing在品牌标识中的应用 - 代码号编程学习</title>
    <style>
        body {
            font-family: 'Arial', sans-serif;
            max-width: 800px;
            margin: 0 auto;
            padding: 40px 20px;
            background-color: #f9f9f9;
            color: #333;
        }
        
        .brand-showcase {
            text-align: center;
            margin-bottom: 40px;
        }
        
        .logo {
            font-size: 2.8rem;
            font-weight: bold;
            margin: 20px 0;
            color: #2c3e50;
        }
        
        .logo-wide {
            letter-spacing: 8px;
            text-transform: uppercase;
        }
        
        .logo-moderate {
            letter-spacing: 3px;
        }
        
        .logo-compact {
            letter-spacing: -1px;
        }
        
        .tagline {
            font-size: 1.2rem;
            letter-spacing: 2px;
            color: #7f8c8d;
            font-style: italic;
            margin-top: 10px;
        }
        
        .application-examples {
            display: flex;
            flex-wrap: wrap;
            gap: 20px;
            justify-content: center;
        }
        
        .example-card {
            background: white;
            padding: 20px;
            border-radius: 8px;
            box-shadow: 0 2px 8px rgba(0,0,0,0.1);
            width: 200px;
            text-align: center;
        }
        
        .example-card h3 {
            margin-top: 0;
            color: #3498db;
        }
    </style>
</head>
<body>
    <div class="brand-showcase">
        <h2>品牌标识中的文字间距应用</h2>
        
        <div class="logo logo-wide">CODINGHUB</div>
        <p class="tagline">宽间距 - 现代、高端、专业</p>
        
        <div class="logo logo-moderate">代码号</div>
        <p class="tagline">适中间距 - 平衡、可靠、稳定</p>
        
        <div class="logo logo-compact">编程学习</div>
        <p class="tagline">紧凑间距 - 力量、紧凑、高效</p>
    </div>
    
    <div class="application-examples">
        <div class="example-card">
            <h3>网站导航</h3>
            <p>适当增加导航菜单中文字的间距,可以提高可读性和触mō目标大小。</p>
        </div>
        
        <div class="example-card">
            <h3>按钮文本</h3>
            <p>按钮中的文字使用稍宽的间距,可以使按钮看起来更加醒目和专业。</p>
        </div>
        
        <div class="example-card">
            <h3>页眉页脚</h3>
            <p>页面顶部和底部的文字信息使用调整后的间距,增强整体设计感。</p>
        </div>
    </div>
</body>
</html>

响应式设计中的letter-spacing

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>响应式设计中的letter-spacing - 代码号编程学习</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
        * {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
        }
        
        body {
            font-family: 'Helvetica Neue', Arial, sans-serif;
            line-height: 1.6;
            color: #333;
            padding: 20px;
            max-width: 1000px;
            margin: 0 auto;
        }
        
        .responsive-section {
            margin: 30px 0;
            padding: 20px;
            background-color: #fff;
            border-radius: 8px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.05);
        }
        
        .responsive-heading {
            font-size: calc(1.5rem + 1vw);
            letter-spacing: calc(0.5px + 0.1vw);
            color: #2c3e50;
            margin-bottom: 15px;
        }
        
        .responsive-text {
            font-size: calc(1rem + 0.2vw);
            letter-spacing: calc(0.2px + 0.02vw);
            line-height: 1.7;
        }
        
        .size-demo {
            display: flex;
            flex-wrap: wrap;
            gap: 20px;
            margin: 30px 0;
        }
        
        .size-box {
            flex: 1;
            min-width: 250px;
            padding: 15px;
            background: #f8f9fa;
            border-radius: 6px;
            text-align: center;
        }
        
        .size-box h3 {
            margin-bottom: 10px;
            color: #3498db;
        }
        
        @media (max-width: 768px) {
            .responsive-heading {
                letter-spacing: 1px;
            }
            
            .responsive-text {
                letter-spacing: 0.3px;
            }
        }
        
        @media (max-width: 480px) {
            .responsive-heading {
                letter-spacing: 0.5px;
            }
            
            .responsive-text {
                letter-spacing: normal;
            }
        }
    </style>
</head>
<body>
    <div class="responsive-section">
        <h2 class="responsive-heading">响应式设计中的文字间距调整</h2>
        <p class="responsive-text">
            在响应式网页设计中,letter-spacing 需要根据屏幕尺寸进行适当调整。
            在大屏幕上,可以适当增加文字间距以增强可读性和美观度;
            在移动设备上,则需要减少间距以适应小屏幕显示。
        </p>
    </div>
    
    <div class="size-demo">
        <div class="size-box">
            <h3>大屏幕设备</h3>
            <p style="letter-spacing: 1.5px;">在桌面显示器上,文字间距可以适当放宽,提升阅读舒适度和整体设计感。</p>
        </div>
        
        <div class="size-box">
            <h3>平板设备</h3>
            <p style="letter-spacing: 0.8px;">在平板电脑上,文字间距应适中,平衡可读性和空间利用效率。</p>
        </div>
        
        <div class="size-box">
            <h3>手机设备</h3>
            <p style="letter-spacing: 0.3px;">在智能手机上,文字间距应接近默认值,确保在小屏幕上保持良好的可读性。</p>
        </div>
    </div>
    
    <div class="responsive-section">
        <h3>实用技巧</h3>
        <p class="responsive-text">
            使用相对单位(如em、rem或vw)设置letter-spacing值,可以使文字间距随着字体大小和屏幕尺寸的变化而自动调整,
            实现真正意义上的响应式排版效果。
        </p>
    </div>
</body>
</html>

本节课程知识要点

  1. 属性功能:letter-spacing 控制字符间水平间距,影响文本整体视觉效果

  2. 取值方式:支持关键字(normal)、固定单位(px)和相对单位(em, rem)

  3. 负值应用:负值使文本更紧凑,正值使文本更松散

  4. 设计原则

    • 标题可使用较大间距增强形式感

    • 正文应保持适当间距确保可读性

    • 品牌标识可根据风格需要调整间距

  5. 响应式考虑:不同屏幕尺寸下应适当调整文字间距

  6. 注意事项:避免极端值,过大或过小的间距都会降低可读性

通过合理运用 letter-spacing 属性,可以显著提升文本的视觉效果和阅读体验,是网页排版中不可或缺的精细调整工具。

更多CSS教程和前端开发知识,请访问代码号编程学习

← CSS checkbox 复选框样式 CSS 导航栏设计 →
分享笔记 (共有 篇笔记)
验证码:
微信公众号