这个设计可以只用 CSS 做吗? [关闭]

Posted

技术标签:

【中文标题】这个设计可以只用 CSS 做吗? [关闭]【英文标题】:Can this design be made with just CSS? [closed] 【发布时间】:2019-08-12 02:26:47 【问题描述】:

https://i.imgur.com/D69glPV.png - 我正在尝试使用 CSS/html 创建这个设计。我最初的想法是创建一个白色的“波浪”容器,用 SVG 形状包裹图标,但我想知道你是否真的可以只用 CSS 来制作它?你们将如何处理这个问题? :)

【问题讨论】:

***.com/questions/55276941/…的可能重复 【参考方案1】:

你这样做的方式是使用 SVG 过滤器: SVG goo on Codepen

您也可能想阅读此The Gooey Effect

最重要的是定义一个goo 过滤器。接下来绘制几个圆圈 (border-radius:50%;) 并应用 svg 过滤器。

SVG 元素的大小无关紧要,您可以将其隐藏起来。

bodybackground:skyBlue;
svgposition:absolute;left:-10em;
.wrap 
  
  display: block;
  margin:0 auto;
  width: 300px;
  height: 260px;
  position: relative;
  filter:url(#goo);

.wrap div 
  
  position: absolute;
  left: 0px;
  top: 90px;
  height: 80px;
  width: 80px;
  border-radius:50%;
  background-color: white;
  color:red;
  text-align:center;
  line-height:80px;


.wrap div:nth-child(2)
  left: 90px;

.wrap div:nth-child(3)
  left: 180px;
<svg   >
<defs>
<filter id="goo">
      <feGaussianBlur in="SourceGraphic" stdDeviation="10" result="blur" />
      <feColorMatrix in="blur" mode="matrix" 
                     values="1 0 0  0   0  
                             0 1 0  0   0  
                             0 0 1  0   0  
                             0 0 0 40  -10" result="goo"/>
      <feBlend in="SourceGraphic" in2="goo" />
    </filter> 
  </defs>
</svg>


<div class ="wrap">
<div>A</div>
<div>B</div> 
<div>C</div> 
</div>

【讨论】:

谢谢,这正是我所需要的。但是,在项目/元素之间留出更多空间的正确方法是什么 - 我需要在过滤器中还是使用 CSS 来指定? :) 在这种情况下,您可能希望增加feGaussianBlurstdDeviation 并增加feColorMatrix 的alpha alpha 值(本例中为40)。但是,如果您需要这些项目彼此远离,则需要考虑将其绘制为 SVG 形状

以上是关于这个设计可以只用 CSS 做吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

设计中的 CSS 和 HTML [关闭]

小程序自己可以做吗?

如何使用纯 css 进行设计? [关闭]

设计基础——引导页你会做吗?

CSS3概述

响应式网页设计:从哪里开始(css模块)[关闭]