我有两种字体,Cooper Black 和 Cooper Hilite。我想把它们叠放在一起,就像这张图片中的样子:http://viewerslikeu.squarespace.com/storage/720x360_1.png
有人愿意接受这个挑战吗?
我有两种字体,Cooper Black 和 Cooper Hilite。我想把它们叠放在一起,就像这张图片中的样子:http://viewerslikeu.squarespace.com/storage/720x360_1.png
有人愿意接受这个挑战吗?
纯CSS实现这个的一种方法是使用:after
伪元素。
请查看这个示例:http://jsfiddle.net/4xgdv/
原始元素是 relative
,它的伪子元素
是absolute
,位于0, 0
,以确保它正确地覆盖原始元素。
HTML
<div class="doublefont">HELLO</div>
CSS 您可以删除“div.”部分,使其适用于所有元素
div.doublefont {
position: relative;
color: red;
font-family: arial;
}
div.doublefont:after {
content: "HELLO";
color: blue;
font-family: tahoma;
position: absolute;
top: 0;
left: 0;
}
泛化它
您可以添加一些JS代码,以便自动使页面上所有带有doublefont
类的元素显示出叠加字体。也就是说,您只需要在元素中放置类似于<div class="doublefont">我的文本..</div>
并将以下JS与上面的CSS结合使用即可。您可以将以下JS放置到页面的<head>
中。
$('.doublefont').each(function() {
$(this).attr('content', $(this).html());
});
更新后的示例:http://jsfiddle.net/4xgdv/1/
另外,看一下这个相关的答案。这就是我得到 attr(content)
提示的地方。
将position:relative
添加到第一个和第二个字体,然后添加top:-20px
或者负的任何值(与字体大小相同),并将z-index:2
指定给上层字体,将z-index:1
指定给下层字体...
示例
.first {
font-size:20px;
position:relative;
z-index:2;
}
.second {
position:relative;
top:-20px;
z-index:1;
}
<div style="position:relative">
<div style="position:absolute; z-index:2;">Content with different fonts(On Bottom)</div>
<div style="position:absolute; z-index:3;">Content with different fonts (On top)</div>
</div>
z-index
,因为第二个子div将会后渲染并默认在顶部。 - Bongs<div>
元素(或类似元素)可以创建效果,但不要忘记给其中一个更高的z-index以使其成为“覆盖”的字体。
HTML
<html>
<head></head>
<body>
<div class="first-font-positioned">This is my Frankenfont</div>
<div class="second-font-positioned">This is my Frankenfont</div>
</body>
</html>
CSS
.first-font-positioned{
font-family: Cooper Hilite;
font-size:30px;
position:absolute;
top:100px;
left:100px;
z-index:100;
}
.second-font-positioned{
font-family: Cooper Black;
font-size:30px;
position:absolute;
top:100px;
left:100px;
}
$('p.layerfont').each(function(index) {
$(this).wrap('<div class="layerwrap" />');
var ptext = $(this).text();
$(this).css('position: absolute;');
$(this).after('<p class="toplayer">'+ptext+'</p>');
});
这将每个段落都包裹在一个包含的 div 中,然后添加另一个具有相同文本的段落,两者都绝对定位在彼此之上。
position:absolute;
创建两个不同的元素,以便它们可以重叠在彼此之上... - Bongs