问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请bootstrap高手进来回答一下怎么样用纯CSS实现下面的图形

发布网友 发布时间:2022-04-28 11:28

我来回答

3个回答

懂视网 时间:2022-04-28 15:50

本篇文章给大家带来的内容是关于如何使用纯CSS实现一只纸鹤(附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

效果预览

3892307135-5b89db4600e00_articlex.gif

源代码下载

https://github.com/comehope/front-end-daily-challenges

代码解读

定义 dom,容器中包含 6 个元素,分别代表头、颈、身体侧面、翅、尾、胸:

<div class="cranes">
 <span class="head"></span>
 <span class="neck"></span>
 <span class="side"></span>
 <span class="wing"></span>
 <span class="tail"></span>
 <span class="belly"></span>
</div>

居中显示:

body {
 margin: 0;
 height: 100vh;
 display: flex;
 align-items: center;
 justify-content: center;
 background-color: dodgerblue;
}

定义容器尺寸:

.cranes {
 width: 52em;
 height: 50em;
 font-size: 7px;
}

设置纸鹤的颜色为白色:

.cranes {
 color: white;
}

画出头部:

.cranes {
 position: relative;
}

.head {
 border-left: 13em solid transparent;
 border-right: 6em solid transparent;
 border-bottom: 2em solid;
 position: absolute;
 left: 0;
 top: 21;
 transform: rotate(-5deg);
}

把以上创建三角形的代码抽象成一个模板,然后数据都改为变量,类似于调用函数的样子:

.cranes span {
 border-left: calc(var(--left) * 1em) solid transparent;
 border-right: calc(var(--right) * 1em) solid transparent;
 border-bottom: calc(var(--bottom) * 1em) solid;
 position: absolute;
 transform: rotate(calc(var(--rotation) * 1deg));
 left: calc(var(--x) * 1em);
 top: calc(var(--y) * 1em);
}

.head {
 --left: 13;
 --right: 6;
 --bottom: 2; 
 --x: 0;
 --y: 21;
 --rotation: -5;
}

设置透明度,以便元素叠加处有折纸效果:

.cranes span {
 filter: opacity(0.6);
}

接下来就是逐个调用生成三角形的函数创建其他三角形:

颈:

.neck {
 --left: 6;
 --right: 6;
 --bottom: 12;
 --x: 14;
 --y: 19;
 --rotation: 75;
}

身体侧面:

.side {
 --left: 1.5;
 --right: 11.5;
 --bottom: 20;
 --x: 18.8;
 --y: 15.1;
 --rotation: 20;
}

翅:

.wing {
 --left: 18.7;
 --right: 30;
 --bottom: 8;
 --x: 6.7;
 --y: 9.2;
 --rotation: -41.9;
}

尾:

.tail {
 --left: 18.6;
 --right: 7.7;
 --bottom: 3.9;
 --x: 19.6;
 --y: 38.1;
 --rotation: -126.5;
}

胸:

.belly {
 --left: 6.2;
 --right: 1.8;
 --bottom: 11.5;
 --x: 17.5;
 --y: 27.8;
 --rotation: -99;
}

至此,纸鹤画完。
最后,增加一点交互效果,当鼠标悬停时,由等腰直角三角形变形成鹤:

.cranes:hover span {
 animation: appear 1s ease-in;
}

@keyframes appear {
 from {
 border-left: 3em solid transparent;
 border-right: 3em solid transparent;
 border-bottom: 3em solid;
 position: absolute;
 transform: rotate(0deg);
 left: calc((52em - 3em) / 2);
 top: calc((50em - 3em) / 2);
 }
}

大功告成!

热心网友 时间:2022-04-28 12:58

<div style="width: 100%;height: 100px;position:relative;">
<div style="border: 1px solid red;float: left;width: 49%;height: 100%;
background-color: blue;position: relative;z-index: 990;left: 0px;"></div>
<div style="border: 1px solid red;float: right;width: 49%;height: 100%;
background-color:yellow;z-index: 990;position: relative;right: 0px;"></div>
</div>
<div style="position:relative;width: 90px;height: 90px;
margin:10px auto;margin-top:-95px;z-index: 999; -webkit-border-radius: 50%;background-color: white;"></div>

追问你这个有一点点问题,就是你把大的DIV宽度设置成100%,那只有在最小屏幕的设备上才是一个按钮的样式,在大屏幕的设备上就占满了,看不得。

追答不要要求别人提供的东西拿过来就要可以使用!别人理解不了你的需要,而且你的需求只能你自来满足!别人提供的解决方案也只能做到参考!!那也未必拿过去就完美无缺!!
如果别人提供的解决方案可以完美无缺,那你也只是在进行copy,没有帮助,你需要做的只能在别人提供的基础上进行修改!变成自己的

热心网友 时间:2022-04-28 14:16

修改版(人是懒死的 ^0^):

<div style="width: 100%;height: 100px;position:relative;max-width: 400px;">
<div style="border: 1px solid red;float: left;width: 49%;height: 100%;
background-color: blue;position: relative;z-index: 990;left: 0px;"></div>
<div style="position: absolute;width: 90px;height: 90px;
margin:10px auto;margin-left: -45px;z-index: 999; -webkit-border-radius: 50%;left: 50%;background-color: white;top: -4px;"></div><div style="border: 1px solid red;float: right;width: 49%;height: 100%;
background-color:yellow;z-index: 990;position: relative;right: 0px;"></div>
</div>
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 笔记本电脑屏幕开机锁忘记密码 怎么办?急死了 华硕笔记本电脑开机密码忘记了怎样找回?系统是Windows 7旗舰版... 乳胶枕需要消毒防螨吗? 乳胶枕头会吸附螨虫吗? 奶酥果酱甜披萨的做法步骤图,怎么做好吃 披萨酱需要哪些材料? 披萨的酱料怎么做好吃 molly大久保是什么意思 人生如戏sp盲盒原型 盲盒为什么这么贵? 泡泡玛特吊卡和盲盒区别是什么? 哪些系列的盲盒做工比较好? 退市再上市,泡泡玛特的“盲盒经济”是门好生意吗? 我家电视是直接连移动无线网络的,没有机顶盒,可以和手机投屏吗? 地球女儿1000%限量多少 比炒鞋还烧钱的盲盒 ,为什么可以让人1年花70万? 天翼电视怎么用手机投屏? 天翼高清电视能投屏吗? 盲盒为什么卖那么贵? 最近泡泡玛特很火啊?还有盲盒什么的?有人解释一下吗? 泡泡玛特为啥那么多人买? 泡泡玛特星座盲盒整盒的会有重复吗? 山东省临沂市苍山县2012年四年级下册语文期中试卷 苏教版小学四年级语文下册期中测试卷,作文怎么写400字 沪教版2019年春四年级语文下册期中测试卷 新药临床研究的分期及各期特点? 2020海南文昌事业单位考核招聘不考笔试吗? 2020年幼儿园招聘编外老师是什么意思? 2019年海南文昌事业单位招聘笔试成绩什么时候出? 2019年海南文昌市水务系统事业单位招聘时间及材料条件是什么 2018年海南文昌市教师招聘考试内容是什么? 2019年海南文昌市水务系统事业单位招聘备考复习资料哪里有 在职教师能考编吗? 教师招聘编制,编外制,合同制,三者的区别是 鄂尔多斯鄂托克前旗招聘105名小学、幼儿园教师笔试内容? 2019年海南文昌市水务系统事业单位招聘条件是什么 2018年官渡区临聘教师招聘条件是什么? 2020清远教师招聘考试流程是什么啊? 海南文昌市公交线路 初学太极拳,该学哪一种阿? 2019年海南文昌市水务系统事业单位招聘报名时间是什么时候? 太极拳有很多种,不知道初学者,先练哪种太极拳?