您是否探索过网格自动流的力量:密集?当与随机生成的值(限制在设定范围内)结合使用时,您可以使用网格列和网格行属性来创建很酷的基于网格的艺术。让我们开始吧!
首先,让我们创建一个基本网格结构:
main { display: grid; grid-auto-flow: dense; grid-template-columns: repeat(auto-fill, minmax(var(--w, 4cqi), 1fr)); }
- display: grid: 建立 CSS 网格布局。
- grid-auto-flow: 密集:通过重新定位项目以最小化空白空间来自动填充网格中的间隙。
- grid-template-columns:定义响应式列布局。这里,自动创建列来填充可用空间(自动填充),每个列的最小宽度为 --w (默认为 4cqi),最大宽度为 1fr。
此时,--w未定义,因此使用默认值(4cqi)。初始网格如下所示:
接下来,我们将用一堆 -节点填充网格。当我们使用 JavaScript 渲染它们时,我们为每个节点添加 2 个变量:
- --gc:要跨越的列数。
- --gr:要跨越的行数。
以下是我们如何在 JavaScript 中生成随机值:
const random = (min, max) => Math.random() * (max - min) + min const column = () => `--gc:${Math.floor(random(0, 4))};` const row = () => `--gr:${Math.floor(random(0, 3))};`
在 CSS 中,我们应用这些自定义属性:
b { background: oklch(var(--l) var(--c) var(--h) / var(--a)); grid-column: span var(--gc); grid-row: span var(--gr, 1); }
我们还可以使用一个小辅助方法在 oklch 中添加一些随机颜色:
const color = () => `--l:${ random(0, 100)}%;--c:${ random(0, 0.5)};--h:${ random(0, 60)};--a:${ random(0.2, 1)};`
现在我们得到:
谢谢你,grid-auto-flow:密集!
为了使事情更加动态,让我们添加旋转和缩放等转换:
b { rotate: var(--r); scale: var(--s); }
在 JavaScript 中,我们生成随机转换值:
const transform = () => `--r:${random(-2, 3)}deg; --s:${random(0.8, 1.2)};`
我们来看看:
太棒了!现在,为了更进一步,让我们添加一些很酷的 SVG 滤镜。
在 JavaScript 中,我们添加了另一个小辅助方法来为每个 节点选择一个随机过滤器:
const filter = () => `--url:url(#${ [ "pencilTexture", "pencilTexture2", "pencilTexture3", "pencilTexture4", ][Math.floor(random(0, 4))] });`
这给了我们:
现在,通过简单地调整 --w 属性和元素数量,我们就可以生成截然不同的艺术作品:
或者:
我们还可以在颜色方法中调整开始值和停止值:
演示
这是一个 Codepen 演示。我在图稿下方添加了控件,因此您可以轻松调整属性:
以上是使用 CSS 网格和 SVG 滤镜进行艺术创作的详细内容。更多信息请关注PHP中文网其他相关文章!

@keyframesispopularduetoitsversatoryand and powerincreatingsmoothcssanimations.keytricksinclude:1)definingsmoothtransitionsbetnestates,2)使用AnimatingmatematingmultationmatingMultationPropertiessimultane,3)使用使用4)使用BombingeNtibalibility,4)使用BombingingWithjavofofofofofoffo

CSSCOUNTERSAREDOMANAGEAUTOMANAMBERINGINWEBDESIGNS.1)他们可以使用forterablesofcontents,ListItems,and customnumbering.2)AdvancedsincludenestednumberingSystems.3)挑战挑战InclassINCludeBrowsEccerCerceribaliblesibility andperformiballibility andperformissises.4)创造性

使用滚动阴影,尤其是对于移动设备,是克里斯以前涵盖的一个微妙的UX。杰夫(Geoff)涵盖了一种使用动画限制属性的新方法。这是另一种方式。

文章讨论了CSS FlexBox,这是一种布局方法,用于有效地对齐和分布响应设计中的空间。它说明了FlexBox用法,将其与CSS网格进行了比较,并详细浏览了浏览器支持。

本文讨论了使用CSS创建响应网站的技术,包括视口元标签,灵活的网格,流体媒体,媒体查询和相对单元。它还涵盖了使用CSS网格和Flexbox一起使用,并推荐CSS框架


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具