【译】如何爱上单一Div插图

avatar

关于如何创建图像的简短教程。 发布时间:2021-01-07

move.png

我总是钦佩那些在CSS中创建单一Div插图的人。一个Div,多个背景层,大量的CSS代码,然后一切就完成了。在这里,你有一个插图。我一直认为这一定很具有挑战性,我永远也做不出这样的事情。现在发现我错了。

要创建一个简单的图像,您只需要知道一件事:CSS 中的背景是如何工作的。就是这样。真!您不必使用 CSS 变量。它们有助于维护干净的代码。读取带有变量的图像要容易得多,但这不是必需的。

练习 1 - 最简单的插图

让我们从一些简单的事情开始。如果你理解了这个例子,你就可以开始了。💪

好吧,看看我们这里有什么?100x100px 矩形,线性渐变以相同的颜色开始和结束。我们的第一个背景也定义 background-position: 0px 0px; 了 - 在 X 轴上,在 Y 轴上 0px。这意味着我们的背景从左上角开始......然后我们有 background-size: 100px 100px; 它清楚地定义了我们紫色的大小。最后一个 background-repeat: no-repeat; 是防止重复我们的图层。

结论:

  • 我们的 div 是纯色 #9B59B6 因为我们以相同的颜色开始和结束渐变
  • 大小是100*100px

太好了,让我们继续再添加一层。

就是这样!我们有两个线性梯度层。注意顺序!前面图层位于后面的图层之上。把它想象成一个 z-index .

我不喜欢将属性分解成碎片,所以让我们整理一下。

div {
   width: 100px;
   height: 100px;
   background:
     linear-gradient(#fff, #fff) 35px 35px / 30px 30px,
     linear-gradient(#9B59B6, #9B59B6) 0px 0px / 100px 100px;
   background-repeat: no-repeat;
 }

斜杠用来分隔背景位置值和背景大小值。

如果我们有更多的背景层,事情可能会有点混乱。您可能不记得背景的第 31 行是用于窗户还是用于栅栏。😄

div {
   --white-square: linear-gradient(#fff, #fff) 35px 35px / 30px 30px;
   --purple-square: linear-gradient(#9B59B6, #9B59B6) 0px 0px / 100px 100px;
   width: 100px;
   height: 100px;
   background:
     var(--white-square),
     var(--purple-square);
   background-repeat: no-repeat;
 }

这样更干净!

练习 2 - 小房子

您已经有足够的知识来创建插图。为了在最后的练习之前热身,让我们做一个小房子。

我们需要几层:

  • 房子前面
  • 车顶左侧
  • 车顶右侧部分
  • 窗口一和窗口二

三角形

这所房子最具挑战性的部分是创建三角形。让我们将这段代码拆分为几段。

让我们来研究这个例子: 我们的目标是为我们的屋顶创造一个三角形。目前,我们的梯度角度为 0 度,因此让我们更改它。我想要一个小的屋顶坡度,所以我把它改成了12度。

我想你明白了,你知道你现在应该做什么。😉 让我们减小梯度的百分比。我把它改成 19 度,以便在右侧有一个完美的起点。 最后,我们需要用透明背景替换红色背景。 在这里,我们有一个直角的漂亮屋顶。🚀

房子的复杂例子

我喜欢把自己扔进深渊。这就是为什么我创建了详细的房子作为我的第一个单div图像:

这看起来像一个复杂的例子。但是,如果您能实现前面一个例子,您将能够制作与上述相同的内容。我在文章中的样本和本文中的唯一区别是单位。在这里,我使用“vmin”单元来创建响应式图像。

这就是今天的全部内容。感谢您的阅读!