随着所有新的CSS3边框的出现(-webkit,…),现在可以在你的字体中添加边框了吗?(比如Twitter蓝色logo周围的白色边框)。如果没有,是否有一些不太丑陋的黑客可以在CSS/XHTML中完成这个任务,或者我仍然需要启动Photoshop?
当前回答
由于webkit似乎对我来说是bug,我对答案并不满意。然后我发现这个代码依赖,可以为您生成原始CSS。只需在JS中输入颜色和边框宽度,然后向下滚动到CSS输出。
2px黑色文本轮廓的例子:
text-shadow: -2px -2px 0 black,-2px -1px 0 black,-2px 0px 0 black,-2px 1px 0 black,-2px 2px 0 black,-1px -2px 0 black,-1px -1px 0 black,-1px 0px 0 black,-1px 1px 0 black,-1px 2px 0 black,0px -2px 0 black,0px -1px 0 black,0px 0px 0 black,0px 1px 0 black,0px 2px 0 black,1px -2px 0 black,1px -1px 0 black,1px 0px 0 black,1px 1px 0 black,1px 2px 0 black,2px -2px 0 black,2px -1px 0 black,2px 0px 0 black,2px 1px 0 black,2px 2px 0 black
以防代码依赖被删除(Vue.js):
new Vue({
el: '#app',
data: {
width: 5,
color: 'DeepPink',
styles: ''
},
created() {
this.textChange()
},
methods: {
textChange() {
var shadows = []
var color = this.color
for(let i = -this.width; i <= this.width; i++) {
for(let j = -this.width; j <= this.width; j++) {
shadows.push(`${i*1}px ${j*1}px 0 ${color}`)
}
}
this.styles = shadows.join(',')
}
}
})
html:
<p><strong>text-shadow:</strong> {{styles}}</p>
其他回答
有一个实验性的CSS属性叫做text-stroke,在一些浏览器中被支持在-webkit前缀后面。
h1 { -webkit-text-stroke: 2px黑色;/*宽度和颜色*/ 字体类型:无;颜色:黄色; } <标题> Hello World h1 > < /
另一个可能的技巧是使用四个阴影,在所有方向上每个像素,使用属性text-shadow:
h1 { /* 1像素黑色阴影左,上,右,下*/ 文本阴影:-1px 0黑,0 1px黑,1px 0黑,0 -1px黑; 字体类型:无;颜色:黄色; } <标题> Hello World h1 > < /
但如果厚度超过1个像素,它就会变得模糊。
似乎有一个“文本描边”属性,但(至少对我来说)它只在Safari中有效。
http://webkit.org/blog/85/introducing-text-stroke/
抱歉我迟到了,但是说到文本阴影,我想你也会喜欢这个例子(当我需要好的文本阴影时,我经常使用它):
text-shadow:
-2px -2px lightblue,
-2px -1.5px lightblue,
-2px -1px lightblue,
-2px -0.5px lightblue,
-2px 0px lightblue,
-2px 0.5px lightblue,
-2px 1px lightblue,
-2px 1.5px lightblue,
-2px 2px lightblue,
-1.5px 2px lightblue,
-1px 2px lightblue,
-0.5px 2px lightblue,
0px 2px lightblue,
0.5px 2px lightblue,
1px 2px lightblue,
1.5px 2px lightblue,
2px 2px lightblue,
2px 1.5px lightblue,
2px 1px lightblue,
2px 0.5px lightblue,
2px 0px lightblue,
2px -0.5px lightblue,
2px -1px lightblue,
2px -1.5px lightblue,
2px -2px lightblue,
1.5px -2px lightblue,
1px -2px lightblue,
0.5px -2px lightblue,
0px -2px lightblue,
-0.5px -2px lightblue,
-1px -2px lightblue,
-1.5px -2px lightblue;
为了详细说明已经提到的-webkit-text-stroke的一些答案,下面是使其工作的代码:
div {
-webkit-text-fill-color: black;
-webkit-text-stroke-color: red;
-webkit-text-stroke-width: 2.00px;
}
这里有一篇关于使用文本笔画的深入文章,这里有一个支持文本笔画的浏览器列表。
笔画字体字符与较少的mixin
下面是一个生成笔画的LESS mixin: http://codepen.io/anon/pen/BNYGBy?editors=110
/// Stroke font-character
/// @param {Integer} $stroke - Stroke width
/// @param {Color} $color - Stroke color
/// @return {List} - text-shadow list
.stroke(@stroke, @color) {
@maxi: @stroke + 1;
.i-loop (@i) when (@i > 0) {
@maxj: @stroke + 1;
.j-loop (@j) when (@j > 0) {
text-shadow+: (@i - 1)*(1px) (@j - 1)*(1px) 0 @color;
text-shadow+: (@i - 1)*(1px) (@j - 1)*(-1px) 0 @color;
text-shadow+: (@i - 1)*(-1px) (@j - 1)*(-1px) 0 @color;
text-shadow+: (@i - 1)*(-1px) (@j - 1)*(1px) 0 @color;
.j-loop(@j - 1);
}
.j-loop (0) {}
.j-loop(@maxj);
.i-loop(@i - 1);
}
.i-loop (0) {}
.i-loop(@maxi);
text-shadow+: 0 0 0 @color;
}
(它是基于pixelass答案,而不是使用SCSS)
推荐文章
- 在网页上用鼠标模拟震颤(例如帕金森病)?
- Bootstrap抛出Uncaught错误:Bootstrap的JavaScript需要jQuery
- 如何改变文本区域的边框颜色:焦点
- 我如何设置背景颜色为文本的宽度,而不是整个元素的宽度,使用CSS?
- 设备像素比到底是什么?
- 我如何做一个半透明的背景?
- 在CSS网格布局中等高行
- $(window).width()与媒体查询不一样
- 如何以及在哪里使用::ng-deep?
- 如何设置身体高度溢出滚动
- 在输入type="number"时禁用webkit的旋转按钮?
- 如何使用JavaScript代码获得浏览器宽度?
- 防止滚动条增加到Chrome页面的宽度
- 使用图像而不是单选按钮
- 将RGB转换为白色的RGBA