发布于2022-12-06 23:17 阅读(1312) 评论(0) 点赞(12) 收藏(3)
Note: This question is similar to this question; however, it is different and thus is being asked as a separate question to the one just linked.
我正在尝试在 CSS中为徽标中的文本创建一个扁平的长阴影。我发现这样做的原始方法是基于Matt Lambert 的 教程。Matt 提议的方法需要大量CSS(不过,对他表示敬意,它确实有效,天知道我没弄明白)。因此,这促使我寻求一种使用更少的 CSS 来做到这一点的方法。@vals想出了如何用 this 做到这一点。
现在我正在尝试为徽标的文本(即this )制作一个平长的阴影(有人对此有更短的缩写吗?首字母缩略词:“ FLS ?” );然而,事情并没有那么顺利……
正如你从我制作的这个小提琴中看到的那样,我将这两种技术结合起来......但是,虽然它并不残酷,但它并不完美......
这是一个片段中的同一个小提琴:
/* shadow color: #2d5986 */
html, body {
height: 100%;
}
body {
display: flex;
flex-flow: column wrap;
overflow: hidden;
}
div {
min-height: 128px;
min-width: 128px;
background-color: #369;
color: white;
font-size: 4em;
display: flex;
align-items: center;
justify-content: center;
position: relative;
overflow: hidden;
}
span {
/* background-color: #47a; */
position: relative;
text-align: center;
text-shadow: #2d5986 1px 1px,
#2d5986 2px 2px,
#2d5986 3px 3px,
#2d5986 4px 4px,
#2d5986 5px 5px,
#2d5986 6px 6px,
#2d5986 7px 7px,
#2d5986 8px 8px,
#2d5986 9px 9px,
#2d5986 10px 10px,
#2d5986 11px 11px,
#2d5986 12px 12px,
#2d5986 13px 13px,
#2d5986 14px 14px;
}
.shadow:before, .shadow:after {
content: "";
position: absolute;
right: 0px;
bottom: 15px;
z-index: 1;
transform-origin: bottom right;
}
.shadow:before {
height: 40px; /* increased height */
width: 100%;
left: 0px;
transform: skewX(45deg);
box-shadow: 1px 40px 0px 0px #2d5986; /* 1px in x direction to avoid small gap between shadows */
}
/* .shadow:after {
width: 10px; increased width
height: 100%;
top: 25px;
transform: skewY(45deg);
box-shadow: 10px 0px #2d5986;
} */
<div>
<span class="shadow">
A
</span>
</div>
<div>
<span class="shadow">
a
</span>
<span class="shadow">
b
</span>
</div>
<div>
<span class="shadow">
A B
</span>
</div>
<div>
<span class="shadow">
A B C
</span>
</div>
主要问题是我们现在使用的是文本阴影而不是框阴影,因此:before
和:after
伪类不起作用(尽管我试图通过将它们附加到<span>
... 然后使它们起作用做了width: 100%
)。
如果有办法设置text-shadow本身的宽度和高度(通过使用:before
和:after
伪类在 box-shadow 上实现),我觉得这将是小菜一碟;但是,我所有的研究都没有找到如何为text-shadow执行此操作。
有谁知道用最少的 CSS 为文本制作扁平长阴影的方法 - 可能通过某种方式改变文本阴影的宽度和高度?
谢谢你。
虽然这不是纯 css 的答案,但您可以尝试一下。
基本上,您通过一个简短的 javascript 片段在浏览器中创建相应的 css。好处是,它使您非常灵活 - 只需更改两个参数而不是几十行 css。
function addDropShadow(element,width,color){
let css = "";
for (var i = 1;i<width;i++){
css += `${color} ${i}px ${i}px,`;
}
css += `${color} ${width}px ${width}px`;
element && (element.style.textShadow = css);
}
let element = document.querySelector(".icon");
let color = "rgb(18, 128, 106)";
addDropShadow(element,15,color);
.container { padding: 50px; background: rgb(34,45,58); } .icon { font-family: "Helvetica Neue", helvetica, arial, sans-serif; font-weight: bold; color: #fff; background-color: rgb(22, 160, 133); height: 150px;width: 150px; font-size: 75px;line-height: 150px; text-align: center; display: block; overflow: hidden; }
<div class="container"><div class="icon">YO</div></div>
作者:黑洞官方问答小能手
链接:http://www.qianduanheidong.com/blog/article/460288/d317a9e10ed18618b1d4/
来源:前端黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 前端黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-3
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!