【发布时间】:2018-06-09 17:40:56
【问题描述】:
我正在尝试使用 CSS 渐变和单个 div 进行绘制。
不幸的是,没有足够的信息,所以我需要通过阅读其他人的代码来自己学习。以下是一些示例:
https://codepen.io/PButcher/pen/JMRKpG
https://codepen.io/jkantner/pen/zdeJYg
https://codepen.io/jkantner/pen/ppjRBP
https://codepen.io/jkantner/pen/XMLVXa
到目前为止,我只学会了如何创建几个基本形状:
div
{
height: 20em;
width: 20em;
background:
linear-gradient( 0deg, #000 0%, #000 100% ) 1em 1em / 5em 5em,
radial-gradient( circle at center, #000 70%, transparent 70% ) 1em 7em / 5em 5em,
linear-gradient( 45deg, #000 0%, #000 50%, transparent 50% ) 1em 13em / 5em 5em,
linear-gradient( -45deg, #000 0%, #000 50%, transparent 50% ) 7em 1em / 5em 5em,
linear-gradient( 135deg, #000 0%, #000 50%, transparent 50% ) 7em 7em / 5em 5em,
linear-gradient( -135deg, #000 0%, #000 50%, transparent 50% ) 7em 13em / 5em 5em,
radial-gradient( 100% 100% at top, #000 50%, transparent 50% ) 14em 1em / 5em 5em,
radial-gradient( 100% 100% at bottom, #000 50%, transparent 50% ) 14em 2em / 5em 5em,
linear-gradient( 45deg, #000 0%, #000 50%, transparent 50% ) 14em 7em / 4em 7em,
radial-gradient( 100% 50%, #000 0%, #000 50%, transparent 50% ) 14em 14em / 5em 5em;
background-repeat: no-repeat;
}
<div></div>
但是,我想创建更复杂的形状,例如,这只鹰的喙和羽毛,或者它上面的阴影。
可以用 CSS 和单个 div 来实现吗?
【问题讨论】:
-
我会说是的...因为您可以应用多个渐变、旋转它们、调整位置等...您还可以添加 2 个伪元素来应用相同的东西...但是你需要能够找到如何将图像切割成不同的元素来做到这一点
-
@TemaniAfif 我知道我可以添加多个渐变,但是如何旋转它们?另外,我知道我需要剪切图像,我只是不知道如何创建这个羽毛形状。我尝试了圆形和三角形,但没有运气..
-
除了 Temani 的回答之外,别忘了,如果您只缺少一个元素,您还可以使用
::before和::after伪元素。 -
@agrm 我还谈到了伪元素 :)
-
@TemaniAfif 你确实做到了!我浏览了您的代码示例而没有看到它们,但一定错过了您的第四段:o)
标签: css gradient linear-gradients radial-gradients