返回

文章详情

你应该了解的CSS属性以改善文本设计

Hacker News2026年8月11日 17:16

就像实体海报的图形设计一样,有时我们也需要在网页上使用一些引人注目的文本。选择合适的字体只是开始。文本的粗细、风格、间距和装饰都可以起到重要作用,但有时我们需要更多的创意来使文本更加突出。以下是五个可以帮助文字在网页上看起来更好或者至少更有趣的属性。它们都是相对简单的实现,可以和其他创意结合使用。1. 背景裁剪(background-clip)字形的填充在排版中通常是实色(有一些特殊的例外)。但用图像填充这个空间其实非常简单。我们只需要选择一个花哨的背景,并将其裁剪成我们文本的形状。结果是一组引人注目的文本效果,且仍然可读。在2000年代后期,背景裁剪属性引入了文本值,使得可以在实时文本中掩盖背景图像(或渐变)。从那时起,它一直是非常受欢迎的酷炫排版视觉效果之一。<p>伯利兹礁</p>代码语言:HTML, XML(xml)p { /* `background-clip: text`包含在简写中 */ background: text url("image.jpg") center/auto 1 lh; /* 透明文本以便裁剪的背景在下面可见 */ color: transparent; }代码语言:CSS(css)2. 垂直对齐(vertical-align)/ 对齐内容(align-content)有时候,基础知识构建了卓越的效果。我们都可以水平对齐文本,因为我们可以编写CSS(text-align: center;)。但在垂直方向上,文本的对齐并不总是那么顺利。然而,理解这两个属性应该可以解决大部分问题。vertical-align属性源于早期网络时代,当时HTML表格主导了布局。它被广泛用于对齐表格单元格内的内容。然而,在表格单元格外部,它并不真的只是对齐文本的垂直方向,而是对齐内联元素与文本的关系。如果某些内容进入文本行,如span、img或input,并需要与文本相对齐,则vertical-align就是用来实现的。31 B <span class="emoji">&#x1F4BA;</span>代码语言:HTML, XML(xml).emoji { vertical-align: top; }代码语言:CSS(css)我们最初可能认为vertical-align所做的是在一个框中垂直对齐文本——实际上是相对较新的属性align-content来完成的。align-content的演变发生在现代布局时代,除了flexbox和grid外,align-content还影响块级盒子并将盒子的内容垂直排列。<p>你好</p>代码语言:HTML, XML(xml)p { width: 360px; aspect-ratio: 1; text-align: center; /* 不再需要grid或flexbox */ align-content: center; }代码语言:CSS(css)3. 盒子装饰模式(box-decoration-mode)我们通常不会逐行考虑排版设计。然而,如果我们确实逐行行事,这个属性就是我们所需的一切,坦率地说,它也是我们拥有的全部。有一个CSS标准模块来处理内容在流、列或页上断裂时的情况,称为碎片化(fragmentation)。但那仅仅是关于决定间距、换行和断裂位置的,直到box-decoration-mode出现以处理样式。当文本的行框断裂时,断裂边缘通常不是样式化的,导致片段边缘看起来不整齐。但使用box-decoration-mode我们可以确保所有片段的边缘都拥有统一的样式。这意味着它们都将获得应用于元素边缘的边框、阴影等。<span>水冷却器聊天<br>每个人都同意<br>现在真热</span>代码语言:HTML, XML(xml)span { box-decoration-break: clone; -webkit-box-decoration-break: clone; /* 边缘样式 */ border: solid blue; border-width: 0 1px 1px 0; box-shadow: 2px 2px 3px rgb(171, 171, 245); padding-inline: 6px; border-radius: 3px; }代码语言:CSS(css)4. 字母间距(letter-spacing)字母间距属性不仅因排版美学而被低估,同时也因动画而得到重视。在CSS中,无法单独定位文本中的每个字形(除了第一个字形)。但字母间距在某种程度上可以做到,因为它决定了文本中所有字形的后续间隔。间距可以接受正值(增加距离)和负值(减少间隔)。对此的动画可以产生文本出现效果。<section id="text"><span>Ingvar</span><span>Kamprad</span><span>Elmtaryd</span><span>Agunnaryd</span></section>代码语言:HTML, XML(xml)span { /* 收缩并隐藏字母 */ letter-spacing: -1ch; color: transparent; /* 保持第一个可见 */ &::first-letter { color: #FBDA0C; /* 黄色 */ } /* 在扩展时 */ body:has(:checked) & { /* 扩展并显示字母 */ letter-spacing: 0ch; color: #0057AD; /* 蓝色 */ transition: letter-spacing 0.4s cubic-bezier(.8, -.5, .2, 1.4), color 0.8s linear; }}代码语言:CSS(css)5. tex

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡