金屋藏娇:用纯css-doodle布局帖子
<css-doodle grid="1x2">:doodle {
@size: 1024px 640px;
background: url('https://638183.freep.cn/638183/t23/webp1/room.webp') no-repeat center/cover;
margin: 80px 0 0 calc(50% - 593px);
}
position: absolute;
@at(1,1) {
@size: 300px;
background: url('https://638183.freep.cn/638183/t23/webp1/girl.webp') no-repeat center/cover;
left: calc(50% - 150px);
bottom: 100px;
-webkit-box-reflect: below -5px linear-gradient(transparent,transparent 65%,rgba(0,0,0,.8));
}
@at(1,2) {
@size: 100px;
@shape: clover 4;
background: lightblue;
left: 20px;
top: 30px;
}
</css-doodle>
<script>
(function() {
let script = document.createElement('script');
script.src = 'https://unpkg.com/css-doodle@0.34.8/css-doodle.min.js';
document.head.appendChild(script);
})();
</script> css-doodle 代码
<css-doodle grid="1x2">
:doodle {
@size: 1024px 640px;
background: url('https://638183.freep.cn/638183/t23/webp1/room.webp') no-repeat center/cover;
margin: 80px 0 0 calc(50% - 593px);
}
position: absolute;
@at(1,1) {
@size: 300px;
background: url('https://638183.freep.cn/638183/t23/webp1/girl.webp') no-repeat center/cover;
left: calc(50% - 150px);
bottom: 100px;
-webkit-box-reflect: below -5px linear-gradient(transparent,transparent 65%,rgba(0,0,0,.8));
}
@at(1,2) {
@size: 100px;
@shape: clover 4;
background: lightblue;
left: 20px;
top: 30px;
}
</css-doodle>
本帖最后由 马黑黑 于 2023-4-23 09:36 编辑
代码解释
头尾两行:创建 css-doodle 标签,grid="1x2" 表示网格形式为 1列 2 行;
第2-6行::doodle 选择器设置,针对的是父元素,其中——
第 3 行设置帖子尺寸为 1024*640;
第 4 行设置帖子背景;
第 5 行设置帖子定位。
第 7 行:设置单元格为绝对定位。
第8-14行:@at(1,1) { ... }
设置在第一列、第一行的单元格,即一楼效果中的菇凉,其中——
09行:尺寸;
10行:背景图片;
11、12行:定位;
13行:设置影子(Chromium内核浏览器有效)
第15-21行:@at(1,2) { ... }
设置位于 列1行2 的单元格,即一楼效果中左上角的四叶草,其中——
16行:尺寸;
17行:形状;
18行:背景色;
19、20行:定位
可以根据需要设置单元格总数,例如下面的页面:
少女之歌 (freeee.ml)
这个倒影真漂亮{:4_187:} 如果不做布局,也能定位的吧,定位时的参照会不同。
为什么四叶草反倒是@at(1,2) ,看位置还以为和美女应该是反一下的呢。{:4_173:} 马黑黑 发表于 2023-4-23 09:46
可以根据需要设置单元格总数,例如下面的页面:
少女之歌 (freeee.ml)
这个比这里的例子更复杂,看到里面还带余弦的就懵了{:4_173:} 红影 发表于 2023-4-23 10:30
这个比这里的例子更复杂,看到里面还带余弦的就懵了
数学功底得有,没有的话,弄个文档,将常用到的东东记下来,用的时候找找。 红影 发表于 2023-4-23 10:30
如果不做布局,也能定位的吧,定位时的参照会不同。
为什么四叶草反倒是@at(1,2) ,看位置还以为和美女应 ...
单元格已经设置了绝对定位,它们都在 xy坐标的 {0,0} 处,而后将它们在一一放置到所需的地方。
在 css-doodle 里,单元格没有做定位前是自然排列的,为了能够随心所欲将它们放置到任何地方,我们需要给它们设定一个 position 属性值 absolute 红影 发表于 2023-4-23 10:27
这个倒影真漂亮
可惜有一些主流浏览器不支持,Firefox就不支持 醉美水芙蓉 发表于 2023-4-23 11:43
欣赏黑黑老师新作品!
这个不是作品,这个帖子主要是讲一讲使用 css-doodle 来设计帖子元素。通过此例,大家应该可以感受到,如果掌握了 css-doodle 的基本操作,做帖子会变得更容易。 马黑黑 发表于 2023-4-23 11:04
数学功底得有,没有的话,弄个文档,将常用到的东东记下来,用的时候找找。
三角函数不难,用到帖子里不明白用法的含义{:4_173:} 马黑黑 发表于 2023-4-23 11:07
单元格已经设置了绝对定位,它们都在 xy坐标的 {0,0} 处,而后将它们在一一放置到所需的地方。
在 cs ...
嗯嗯,设置了参照系统,就可以在其中安排位置了。 马黑黑 发表于 2023-4-23 11:08
可惜有一些主流浏览器不支持,Firefox就不支持
还好我不是这个浏览器。{:4_173:} 感谢老师的代码分享,欣赏点赞!{:4_187:} 梦缘 发表于 2023-4-23 16:13
感谢老师的代码分享,欣赏点赞!
感谢 红影 发表于 2023-4-23 13:33
还好我不是这个浏览器。
Chromium内核的支持 红影 发表于 2023-4-23 13:31
三角函数不难,用到帖子里不明白用法的含义
不外乎就是制定路线,计算各点的xy坐标 红影 发表于 2023-4-23 13:33
嗯嗯,设置了参照系统,就可以在其中安排位置了。
这个和CSS+HTML布局原理一致,它就是从那里来的
页:
[1]
2