前端 CSS 经典:文字描边

简介: 前端 CSS 经典:文字描边

前言:文字描边有两种实现方式

1. text-shadow

设置 8 个方向的文字阴影,缺点是只有八个方向,文字转角处可能有锯齿状。不支持文字透明,设置 color: transparent,文字会成描边颜色。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta
      name="viewport"
      content="initial-scale=1.0, user-scalable=no, width=device-width"
    />
    <title>document</title>
    <style>
      body {
        background: #000;
      }
 
      p {
        text-align: center;
        font-weight: bold;
        font-size: 5em;
        color: red;
        text-shadow: 0 -2px #fff, 2px 0px #fff, 0 2px #fff, -2px 0 #fff,
          -2px -2px #fff, 2px 2px #fff, 2px -2px #fff, -2px 2px #fff;
      }
    </style>
  </head>
  <body>
    <p>人生若只如初见</p>
    <p>何事秋风悲画扇</p>
    <script></script>
  </body>
</html>

2. -webkit-text-stroke

描边属性,支持文字透明。只留描边。缺点是兼容性,文字会变细,文字变细可以通过 JS 解决。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta
      name="viewport"
      content="initial-scale=1.0, user-scalable=no, width=device-width"
    />
    <title>document</title>
    <style>
      body {
        background: #000;
      }
 
      p {
        font-weight: bold;
        font-size: 5em;
        color: red;
        -webkit-text-stroke: 4px #fff;
        position: relative;
      }
      p::after {
        content: attr(data-text);
        position: absolute;
        left: 0;
        top: 0;
        text-align: center;
        -webkit-text-stroke: 0;
      }
    </style>
  </head>
  <body>
    <p>人生若只如初见</p>
    <p>何事秋风悲画扇</p>
    <script>
      const ps = document.querySelectorAll("p");
      ps.forEach((p) => {
        p.dataset.text = p.textContent;
      });
    </script>
  </body>
</html>
目录
相关文章
|
9天前
|
Web App开发 前端开发 JavaScript
揭秘!前端大牛们如何巧妙利用CSS3,打造炫酷视觉效果!
【10月更文挑战第31天】前端开发面临复杂布局的挑战,本文介绍了几种提升开发效率和代码质量的工具和技术。基础的HTML和CSS可以应对大部分布局需求,而Firefox开发者工具、VS Code、Vue、React等则能应对更复杂的布局,帮助开发者构建高性能、用户友好的网页应用。
19 4
|
28天前
|
前端开发 JavaScript
CSS样式穿透技巧:利用scoped与deep实现前端组件样式隔离与穿透
CSS样式穿透技巧:利用scoped与deep实现前端组件样式隔离与穿透
132 1
|
1月前
|
前端开发 容器
前端技术分享:利用CSS Grid布局实现响应式设计
【10月更文挑战第1天】前端技术分享:利用CSS Grid布局实现响应式设计
|
1月前
|
前端开发 UED 容器
前端技术分享:利用 CSS Grid 实现响应式布局
【10月更文挑战第1天】前端技术分享:利用 CSS Grid 实现响应式布局
50 2
|
28天前
|
移动开发 前端开发 JavaScript
前端开发实战:利用Web Speech API之speechSynthesis实现文字转语音功能
前端开发实战:利用Web Speech API之speechSynthesis实现文字转语音功能
139 0
|
1月前
|
前端开发 JavaScript 容器
前端之CSS基础知识
前端之CSS基础知识
16 0
|
1月前
|
Web App开发 前端开发 iOS开发
|
1月前
|
前端开发 容器
【前端基础篇】CSS基础速通万字介绍(下篇)3
【前端基础篇】CSS基础速通万字介绍(下篇)
17 0
|
1月前
|
Web App开发 存储 前端开发
【前端基础篇】CSS基础速通万字介绍(下篇)2
【前端基础篇】CSS基础速通万字介绍(下篇)
18 0
|
1月前
|
前端开发
【前端基础篇】CSS基础速通万字介绍(下篇)1
【前端基础篇】CSS基础速通万字介绍(下篇)
19 0