html text-stoke,使用text-stroke 和 text-shadow制作CSS描边文字

描边文字指的是文字只显示描边轮廓。在CSS中,有两种方法可以实现描边文字,分别是为文字设置text-stroke和text-shadow属性。

text-shadow属性可以为文字设置阴影效果。使用text-shadow属性来制作描边文字是个不错的选择,下面的是一段示例代码:

h1 {text-shadow: 1px 1px 0 #000, -1px -1px 0 #000;}

通常两重阴影就可以得到一个不错的描边文字效果,上面代码的结果如下图:

59f31a0a50702007a6477edd731719f2.png

text-shadow两重阴影时得到的描边效果

你会发现使用两重阴影得到的描边效果比较模糊,这和字体有关,某些字体会得到比较清晰的描边效果。上边使用的是微软雅黑字体,描边效果比较模糊。为此,我们可以使用四重阴影俩设置文字的描边效果:

text-shadow: -1px -1px 0 #000,

1px -1px 0 #000,

-1px 1px 0 #000,

1px 1px 0 #000;

使用四重text-shadow阴影,每一重都往不同的方向偏移一个像素,得到下面的效果:

57d8dd2aedb56baad265a56184631b0c.png

text-shadow四重阴影时得到的描边效果

使用text-shadow来制作描边文字最大的问题是某些线条的接口处不是完全闭合的,仔细观察上面的图片就可以看到。

另外一个制作描边文字的方案是使用text-stroke属性:

text-stroke: thickness color;

text-stroke属性只能指定描边线条的粗细,不能指定线条的样式(如使用虚线描边等)。webkit内核的浏览需要为text-stroke属性添加-webkit-前缀:

h1 {

-webkit-text-stroke: 1px black;

text-stroke: 1px black;

}

5fc97f5a687fa77e5d4bfa51964f57dc.png

使用text-stroke来制作文字描边效果

可以看到,使用text-stroke属性制作的描边文字线条的接口处是完全闭合的。

使用text-stroke属性需要注意的一个问题是,描边的颜色和文字的背景颜色相同时,某些浏览器会看不到任何效果。例如:

h1 {

color: white;

-webkit-text-stroke: 2px black;

text-stroke: 2px black;

background: white;

}

上面的代码使H1标题文字在Chrome 或 Safari浏览器中呈现描边文字效果,但是在其它浏览器中没有任何效果。

要解决上面的问题,你可以先使用color属性来设置文字的颜色,然后通过text-fill-color属性来覆盖文字的颜色,这样在不支持描边的浏览器中,文字会显示为color属性指定的颜色:

h1 {

color: black;

-webkit-text-fill-color: white;

text-fill-color: white;

-webkit-text-stroke: 2px black;

text-stroke: 2px black;

background: white;

}

text-stroke属性和text-fill属性的浏览器兼容性如下图:

6c6c6e14b66576808ed4e38a6eff6f77.png

css text-stroke属性的浏览器兼容性

相关阅读

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 `moveTo`,`lineTo` 和 `stroke` 方法创建一个宽为 200,高为 150 的画布,可以按照以下步骤进行: 1. 在 HTML 中创建一个 `<canvas>` 元素,并设置其宽度和高度属性: ```html <canvas id="myCanvas" width="200" height="150"></canvas> ``` 2. 使用 JavaScript 获取该元素,并获取绘图上下文: ```javascript var canvas = document.getElementById("myCanvas"); var ctx = canvas.getContext("2d"); ``` 3. 使用 `moveTo` 方法将笔触移动到画布的左上角: ```javascript ctx.moveTo(0, 0); ``` 4. 使用 `lineTo` 方法绘制一条横线,从左上角到画布的右上角: ```javascript ctx.lineTo(200, 0); ``` 5. 使用 `lineTo` 方法绘制一条竖线,从画布的右上角到右下角: ```javascript ctx.lineTo(200, 150); ``` 6. 使用 `lineTo` 方法绘制一条横线,从画布的右下角到左下角: ```javascript ctx.lineTo(0, 150); ``` 7. 使用 `lineTo` 方法绘制一条竖线,从画布的左下角回到左上角: ```javascript ctx.lineTo(0, 0); ``` 8. 使用 `stroke` 方法将绘制的路径渲染到画布上: ```javascript ctx.stroke(); ``` 完整的代码如下: ```html <canvas id="myCanvas" width="200" height="150"></canvas> <script> var canvas = document.getElementById("myCanvas"); var ctx = canvas.getContext("2d"); ctx.moveTo(0, 0); ctx.lineTo(200, 0); ctx.lineTo(200, 150); ctx.lineTo(0, 150); ctx.lineTo(0, 0); ctx.stroke(); </script> ``` 这将在画布上创建一个宽为 200,高为 150 的矩形。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值