同一个单词中的字符之间是否可以有不同的字母间距?这可以只用 CSS 来完成吗?
Is it possible to have different letter-spacing between characters in the same word? Can this be accomplished with CSS only?
我做了一些研究,我知道字母间距 CSS 属性,但是是否可以在同一个单词中使用不同的字符间距?
我不会跳过任何层,所以我无法通过每两个字母使用 span 标签来完成此操作。
.ex { letter-spacing: -2.0px }
.am { letter-spacing: -1.5px }
.pl { letter-spacing: -1.0px }
.e { letter-spacing: -0.5px }
<span class="ex">Ex</span><span class="am">am</span><span class="pl">pl</span><span class="e">e</span>
我正在寻找的功能更像是这样,但我不确定是否可行:
.ex { letter-spacing: -2.0px }
.am { letter-spacing: -1.5px }
.pl { letter-spacing: -1.0px }
.e { letter-spacing: -0.5px }
<kern class="1">E<kern2 class="2">x</kern><kern3 class="3">a</kern2><kern4 class="4">m</kern3><kern5 class="5">p</kern4><kern6 class="6">l</kern5>e</kern6>
感谢任何反馈,谢谢!
是的,你可以。
我使用 jQuery 函数将每个字母包装在 span
中。然后通过使用 span:nth-child(x)
你可以给他们不同的负左边距。
$(function() {
var words = $('p').text().split("");
for (i in words)
words[i] = '<span>' + words[i] + '</span>';
var text = words.join('');
$("p").html(text);
});
p {
font-size: 3em;
}
span {
border: 1px solid red;
margin-left: -5px;
}
span:nth-child(4) {
margin-left: 15px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>Example</p>
编辑
如果你想为每个字母设置边距,你可以使用这个。我现在只定义了单词 'example' 的字母,但我想你会明白这一点的。
$(function() {
var abc = {e:'-5px', x:'-5px', a:'-5px', m: '15px', p:'-5px', l:'-5px'};
var words = $('p').text().split("");
for (i in words)
words[i] = '<span style="margin-left: '+abc[words[i]]+'">' + words[i] + '</span>';
var text = words.join('');
$("p").html(text);
});
p {
font-size: 3em;
}
span {
border: 1px solid red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>Example</p>
我做了一些研究,我知道字母间距 CSS 属性,但是是否可以在同一个单词中使用不同的字符间距?
我不会跳过任何层,所以我无法通过每两个字母使用 span 标签来完成此操作。
.ex { letter-spacing: -2.0px }
.am { letter-spacing: -1.5px }
.pl { letter-spacing: -1.0px }
.e { letter-spacing: -0.5px }
<span class="ex">Ex</span><span class="am">am</span><span class="pl">pl</span><span class="e">e</span>
我正在寻找的功能更像是这样,但我不确定是否可行:
.ex { letter-spacing: -2.0px }
.am { letter-spacing: -1.5px }
.pl { letter-spacing: -1.0px }
.e { letter-spacing: -0.5px }
<kern class="1">E<kern2 class="2">x</kern><kern3 class="3">a</kern2><kern4 class="4">m</kern3><kern5 class="5">p</kern4><kern6 class="6">l</kern5>e</kern6>
感谢任何反馈,谢谢!
是的,你可以。
我使用 jQuery 函数将每个字母包装在 span
中。然后通过使用 span:nth-child(x)
你可以给他们不同的负左边距。
$(function() {
var words = $('p').text().split("");
for (i in words)
words[i] = '<span>' + words[i] + '</span>';
var text = words.join('');
$("p").html(text);
});
p {
font-size: 3em;
}
span {
border: 1px solid red;
margin-left: -5px;
}
span:nth-child(4) {
margin-left: 15px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>Example</p>
编辑
如果你想为每个字母设置边距,你可以使用这个。我现在只定义了单词 'example' 的字母,但我想你会明白这一点的。
$(function() {
var abc = {e:'-5px', x:'-5px', a:'-5px', m: '15px', p:'-5px', l:'-5px'};
var words = $('p').text().split("");
for (i in words)
words[i] = '<span style="margin-left: '+abc[words[i]]+'">' + words[i] + '</span>';
var text = words.join('');
$("p").html(text);
});
p {
font-size: 3em;
}
span {
border: 1px solid red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>Example</p>