使用HTML和CSS制作曲线文本

18

我知道已经有一篇关于弯曲文本的帖子,但我正在寻找特定的内容。

在这个网页(http://mrcthms.com/),Marc使用了一种不错的技巧来使他的名字呈弧形,但我无论如何都不能复制这种技巧。这是我正在尝试的:

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" x-undefined="" />
<title>Curved Text</title>
<style type="text/css">
span {
    display: inline-block;
    font-family: futura-pt, 'Helvetica Neue', sans-serif;
    font-size: 2.5em;
    font-weight: 300;
    margin: 1px;
}

.arced {
    display: block;
    text-shadow: rgba(0, 0, 0, 0.298039) 8px 8px;
    text-align: center;
    margin: 20px;
    padding: 50px 0 50px;
}

div span {
    text-shadow: rgba(0, 0, 0, 0.298039) 8px 8px;
    font-family: futura-pt, 'Helvetica Neue', sans-serif;
    font-size: 2.5em;
    font-weight: 300;
}

.arced > span:nth-child(1) {
    -webkit-transform:translateX(-1px) translateY(68px) rotate(-17deg);
    -webkit-transition:0s;
}
</style>
</head>

<body>
    <span class="arced">
        <span class="char1">S</span>
        <span class="char2">T</span>
        <span class="char2">E</span>
        <span class="char3">V</span>
        <span class="char4">E</span>
</span>
</body>

</html>
2个回答

20

我发现了这个叫做:CircleType.js 的解决方案。它提供了一种简短而简单的方法来创建圆形文本。

<h2 id="yourStyle">MARC THOMAS.</h2>

$('#yourStyle').circleType({radius: 800});

或者您可以使用相当灵活的lettering.js

在此基础上,使用CSS / jQuery添加转换效果。希望这能帮到您!


15
他在每个字母上使用CSS3转换。例如,他的名字的HTML如下所示:
<span class="arced">
    <span class="char1">M</span>
    <span class="char2">a</span>
    <span class="char3">r</span>
    <span class="char4">c</span>
    ...
</span>

然后,CSS如下:

.show .hero h1 .arced > span:nth-child(1) {
    -webkit-transform: translateX(-1px) translateY(68px) rotate(-17deg);
       -moz-transform: translateX(-1px) translateY(68px) rotate(-17deg);
        -ms-transform: translateX(-1px) translateY(68px) rotate(-17deg);
         -o-transform: translateX(-1px) translateY(68px) rotate(-17deg);
            transform: translateX(-1px) translateY(68px) rotate(-17deg);

    -webkit-transition-delay: 0s;
       -moz-transition-delay: 0s;
         -o-transition-delay: 0s;
            transition-delay: 0s;
}

.show .hero h1 .arced > span:nth-child(2) {
    -webkit-transform: translateX(-3px) translateY(39px) rotate(-13deg);
       -moz-transform: translateX(-3px) translateY(39px) rotate(-13deg);
        -ms-transform: translateX(-3px) translateY(39px) rotate(-13deg);
         -o-transform: translateX(-3px) translateY(39px) rotate(-13deg);
            transform: translateX(-3px) translateY(39px) rotate(-13deg);

    -webkit-transition-delay: .04s;
       -moz-transition-delay: .04s;
         -o-transition-delay: .04s;
            transition-delay: .04s;
}

等等就是这样。


当然... span:nth-child(1) 只是指第一个字符... 有时候我真是个傻瓜!谢谢! - Fifer Sheep

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接