html - How to border white and box-shadow this text
解决方案
有几种方法可以实现这一点。最常用的是使用text-shadow
,可以用来设置多个文字阴影。不过这看起来不太好(见下面的小提琴)。
其他选项包括使用该-webkit-text-stroke-width
属性,尽管这是一个前缀属性,将来可能会被删除,所以要小心(再次,参见下面的小提琴);然而,这种方法是最简单的,在美学方面比box-shadow
方法更接近(尤其是在较大的尺寸时)。
最后一个选项(可能与所需的美学最一致,同时仍保持良好的跨浏览器兼容性)是使用 SVG(如上,参见下面的小提琴)。
在 SVG 示例中,我还在初始文本上添加了文本,以覆盖笔划侵占文本的事实(即,向文本添加 4px 的笔划将在文本之外添加 2px,在文本内部添加 2px,导致文本变为少“粗体”)。您可以通过使用(例如)伪元素(即<h1 data-stroke="PIN">PIN</h1>
)对第二个示例(也使用笔划)进行保存效果。
这里的缺点显然是嵌套的 HTML 更大。
您选择哪种方法将完全取决于您使用它的上下文。正如上面所问的,没有任何代码可以看到,如果没有您详细说明并提供您迄今为止所做的示例,就无法给出更好的答案。
body {
background: #eee
}
h1 {
font-family: Impact, sans-serif;
font-size: 4em;
color: red;
}
/* Well-supported, but looks a bit naff */
.shadow {
text-shadow:
-2px 0 0 #fff,
0 -2px 0 #fff,
2px 0 0 #fff,
0 2px 0 #fff,
2px -2px 0 #fff,
-2px 2px 0 #fff,
-2px -2px 0 #fff,
2px 2px 0 #fff,
3px 3px 4px rgba(0,0,0,0.5)
}
/* Uses prefixes, which might be dropped in the future */
.stroke {
-webkit-text-stroke-width: 2px;
-webkit-text-stroke-color: white;
text-shadow: 3px 3px 4px rgba(0,0,0,0.5)
}
<body>
<!-- Using text shadow -->
<h1 class="shadow">PIN</h1>
<!-- Using webkit stroke -->
<h1 class="stroke">PIN</h1>
<!-- Using svgs -->
<svg width="100px" height="60px" viewBox="0 0 100 60">
<defs>
<style>
text {
font-family: Impact, sans-serif;
font-size: 50px;
fill: red;
alignment-baseline: middle;
}
.outline {
fill: white;
stroke: white;
stroke-width: 4;
}
</style>
<filter id="shadow" x="-20%" y="-20%" width="140%" height="140%">
<feGaussianBlur stdDeviation="2 2" result="shadow"/>
<feOffset dx="3" dy="3"/>
</filter>
</defs>
<text x="10" y="30" style="filter: url(#shadow); fill: rgba(0,0,0,0.7)">PIN</text>
<text x="10" y="30" class="outline">PIN</text>
<text x="10" y="30">PIN</text>
</svg>
</body>
推荐阅读
- scip - 当我想使用 GCG 时如何在 Windows 7 中启动 SCIP
- flutter - 用容器包装脚手架以获得渐变背景,如何在颤动中将渐变设置为容器背景?
- google-maps - 将 LatLng 转换为 (x, y) 坐标
- mysql - 新手需要查询帮助(MYSQL)
- amazon-web-services - 如何使用批量转换作业将更大的 .csv 文件传递给 amazon sagemaker 进行预测
- excel - 在 excel 中更新 URL 的部分/日期
- c - c 中指针的 int,unsigned int 类型转换
- apache-camel - 在加载所有数据之前向消费者请求 Stream 的大小
- php - 如何使用php在循环行内显示一行?
- c# - WebRequest 在多个任务中较慢