Примечание. Этот вопрос похож на этот вопрос; однако он отличается и поэтому задается как отдельный вопрос по сравнению с только что связанным.
Я пытаюсь создать плоскую длинную тень в CSS для текста в логотипе. Оригинальный способ, который я нашел, основан на Matt Lambert руководство. Способ, который предлагает Мэтт, потребует много CSS (хотя, слава ему, это действительно работает, и бог знает, что я этого не понял). Таким образом, это заставило меня попросить способ сделать это с меньшим количеством CSS. @vals выяснил, как это сделать с помощью это.
Теперь я пытаюсь сделать плоскую-длинную-тень (у кого-нибудь есть более короткая аббревиатура для этого? как насчет аббревиатуры: "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>
Основная проблема заключается в том, что теперь мы работаем с text-shadow вместо box-shadow, и как таковые псевдоклассы :before
и :after
не работают (хотя я пытался заставить их работать, присоединив их к классу <span>
.. ., а затем сделал width: 100%
).
Если бы существовал способ установить ширину и высоту самой text-shadow (что достигается для box-shadow с помощью псевдоклассов :before
и :after
), мне кажется, это было бы быть пустяком; однако все мои исследования не нашли, как это сделать для text-shadow.
Кто-нибудь знает способ сделать плоскую длинную тень для текста с минимальным CSS - возможно, каким-то образом изменив ширину и высоту тени текста?
Спасибо.