设置首字母大写样式的艺术已经存在数百年,甚至数千年。您可以查看历史记录,了解它在印刷样式中用于表示新部分或新章节的开头。但在数字时代,样式一直是个问题。目前还没有“简洁”的样式设置解决方案。
CSS initial-letter
属性可以让事情变得更简单。
浏览器支持
在哪里可以试用 initial-letter
?它适用于 Safari 和 Chrome 110。在 Safari 中,该属性需要带有 -webkit-
前缀。在 Firefox 中实现此功能存在一个未解决的问题。
使用以下命令测试 initial-letter
支持情况:
@supports (initial-letter: 1 1) { /* Your supported styles */ }
当前解决方案
现在,您如何在 CSS 中设置上角线?
::first-letter
伪元素可以帮助我们解决部分问题。
p::first-letter {
color: hsl(220, 94%, 51%);
font-weight: bold;
font-size: 4rem;
}
不过,在计算第一个字母的大小时,您可能需要使用“float”等属性。
p::first-letter {
color: hsl(220, 94%, 51%);
font-weight: bold;
font-size: 4rem;
float: left;
line-height: 1;
margin-right: 0.25rem;
}
引入 lh
等新的 CSS 单位可以缓解其中的一些问题。不过,这些功能的支持也有限(lh
目前仅在 Chrome 中受支持)。
p::first-letter {
color: hsl(220, 94%, 51%);
font-weight: bold;
font-size: 3lh;
float: left;
line-height: 1;
margin-right: 0.1lh;
}
推出 initial-letter
借助 initial-letter
属性,您可以更精细地控制此首字母大写样式。它接受两个以空格分隔的值:
p::first-letter {
initial-letter: 3.5 3;
}
- 第一个参数定义字母的大小和它将占据的行数。信件将放大,同时保持宽高比。您不能使用负值,但可以使用小数值。
- 第二个参数定义了字母接收器。这可以视为字母将放置的位置的偏移量。第二个值是可选的,且不能为负数。如果不存在,则假定信件大小的值为向下取整后的最接近的整数。这等同于使用关键字“drop”。下水道还接受另一个关键字值“raise”,该值等同于下水道为 1。
请查看此演示,您可以更改值,看看对首字母大写样式有何影响。
将其与 ::first-line
结合使用,您可以得到如下内容
p::first-line {
font-variant: small-caps;
font-weight: bold;
font-size: 1.25rem;
}
p::first-letter {
font-family: "Merriweather", serif;
initial-letter: 3.5 3;
font-weight: bold;
line-height: 1;
margin-right: 1rem;
color: #3b5bdb;
text-shadow: 0.25rem 0.25rem #be4bdb;
}
或者,给它一个 border
。请注意以下示例如何使用“drop”关键字,如果省略该关键字,则默认为 3:css
p::first-letter {
font-family: "Merriweather", serif;
initial-letter: 3.5 drop;
font-weight: bold;
line-height: 1;
margin-right: 1rem;
color: #3b5bdb;
border: 0.25rem dashed #be4bdb;
padding: 0.5rem;
border-radius: 5px;
}
可以添加 background
或一些 box-shadow
:
p::first-letter {
font-family: "Merriweather", serif;
initial-letter: 3.5 3;
font-weight: bold;
line-height: 1;
margin-right: 1rem;
color: var(--surface-1);
background: #be4bdb;
padding: 0.5rem;
border-radius: 5px;
box-shadow: 0.5rem 0.5rem 0 #3b5bdb;
}
或者将背景剪裁到文本:
p::first-letter {
background: linear-gradient(to bottom right,#1f005c,#5b0060,#870160,#ac255e,#ca485c,#e16b5c,#f39060,#ffb56b);
font-family: "Merriweather", serif;
initial-letter: 3.5 3;
font-weight: bold;
line-height: 1;
margin-right: 1rem;
color: transparent;
-webkit-background-clip: text;
padding: 0.5rem;
}
您有很多选择!
这样,您就可以使用 initial-letter
更精细地控制首字母大写样式了!您是否要在排版中添加大号首字母?您会如何设置样式?请告知我们!