有趣的前端css特效-收音机

382 阅读6分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

有趣的前端css特效-收音机

既承载着一代人的回忆,也承载着中华民族深厚的文化底蕴,它,就是收音机。随着电视机手机电脑的普及,听着广播和收音机的我们已经慢慢长大,而它也渐渐淡出人们的视线,逐步退出了市场。

今天的css特效就来绘制这个 藏在一代人记忆里的收音机。

NSFileHandle_1.png

1.定义在主容器

按照惯例,设置主容器到合适的宽高后,将容器居中


div{

position: absolute;

left50%;

top50%;

width280px;

height160px;

margin-left: -130px;

margin-top: -80px;

}

2.设置收音机主体

设置收音机主色为活力橙

background-color: #ff7f50;

设置机身部分颜色


background-image: 

            //机身上部分颜色

            linear-gradient(to bottom,#ff7f50 14px,transparent 14px),

            //机身左侧颜色

            linear-gradient(to right,#ff7f50 96px,transparent 96px),

            //机身右侧颜色

            linear-gradient(to left,#ff7f50 16px,transparent 16px),

            //机身下部分颜色

            linear-gradient(to top,#ff7f50 14px,transparent 14px), 

            //机身右侧喇叭外壳

            radial-gradient(circle,rgba(0,0,0,0.430%,transparent 30.5%);

        background-size100% 100%,100% 100%,100% 100%,100% 100%,7px 7px;

得到效果图如下

NSFileHandle_3.png

再给机身加上圆角及阴影


border-radius2px 10px 10px 0;

box-shadow0 -3px 0 #ff5213, inset -4px 4px 2px rgb(255 255 255 / 30%), -5px 11px 4px -5px rgb(98 46 38 / 90%), -5px 17px 6px -5px rgb(98 46 38 / 40%);  

效果如图:

NSFileHandle_2.png

是不是瞬间就有那意思了。

3.补齐主体部分左侧空缺

通常收音机还会有一些银色滚动的按钮用来调节音量或者频道,接下来就使用伪类绘制这部分的内容吧。代码如下:


div:before {

display: block;

content'';

position: absolute;  

width300px;

height175px;

margin-top: -3px;

background-repeat: no-repeat;

background-image: 

 //左侧上部分高光色

linear-gradient(to bottom,rgba(0,0,0,0.20,rgba(255,255,255,0.220%,rgba(255,255,255,0.325%,rgba(0,0,0,050%),

//左侧上部分网格

repeating-linear-gradient(to bottom,rgba(255,255,255,0.15),rgba(255,255,255,0.151px,rgba(255,255,255,01px,rgba(255,255,255,07px),

//左侧下部分网格

repeating-linear-gradient(to bottom,rgba(0,0,0,0.35),rgba(0,0,0,0.353px,rgba(0,0,0,03px,rgba(0,0,0,07px),

//左部分滚轮-底色

linear-gradient(to bottom,rgba(0,0,0,0.4),rgba(0,0,0,020%,rgba(0,0,0,070%,rgba(0,0,0,0.7100%),

//左部分滚轮-中部

repeating-linear-gradient(to bottom,#eee,#eee 1px,rgba(255,255,255,01px,rgba(255,255,255,02px),

//左部分滚轮-中部补齐

repeating-linear-gradient(to bottom,#bbb,#bbb 1px,#777 1px,#777 2px),

//左部分滚轮-阴影

linear-gradient(rgba(0,0,0,0.6),rgba(0,0,0,0.6)),

//右部分滚轮-底色

linear-gradient(to bottom,rgba(0,0,0,0.4),rgba(0,0,0,020%,rgba(0,0,0,070%,rgba(0,0,0,0.7100%),

//右部分滚轮-中上部分

repeating-linear-gradient(to bottom,#eee,#eee 1px,rgba(255,255,255,01px,rgba(255,255,255,02px),

//右部分滚轮-中下部分

repeating-linear-gradient(to bottom,#bbb,#bbb 1px,#777 1px,#777 2px),

//右部分滚轮-阴影

linear-gradient(rgba(0,0,0,0.6),rgba(0,0,0,0.6)),

//左侧部分整体底色

linear-gradient(#444,#444),

//左侧部分-右阴影

linear-gradient(to right,rgba(0,0,0,0.3),rgba(0,0,0,0)),

//右侧喇叭下小支架

linear-gradient(#e93f00,#e93f00),

//收音机右侧锁扣拉环1

linear-gradient(rgba(0,0,0,0.5),rgba(0,0,0,0.5)),

//收音机右侧锁扣拉环2

linear-gradient(to bottom,#666 5%,#eee 20%,#eee 30%,#aaa 40%,#aaa 50%,#ccc 60%,#555 90%),

//收音机右侧锁扣拉环3

radial-gradient(ellipse at left center,transparent 13%,#444 14%,#444 35%,transparent 36%),

//收音机右侧高光角落

radial-gradient(ellipse,rgba(255,255,255,0.50,rgba(255,255,255,060%),

//左侧部分下底阴影

linear-gradient(to bottom,rgba(0,0,0,0.5),rgba(0,0,0,040%);

background-size80px 20px,50px 27px,50px 95px,25px 21px,20px 7px,25px 21px,29px 25px,11px 21px,11px 7px,11px 21px,15px 25px,80px 165px,7px 163px,8px 4px,1px 15px,4px 15px,20px 20px,10px 7px,80px 10px;

background-position0 0,20px 59px,20px 60px,22px 22px,22px 26px,22px 22px,20px 20px,57px 22px,57px 26px,57px 22px,55px 20px,0 0,80px 0,right 50px bottom 8px,right 17px top 30px,95% 30px,100% 20px,right 23px top 4px,0 100%;

得到的效果图如下

NSFileHandle.png

其实这样就已经很像了。但是我们还可以补充一些细节

4.细节部分补充

div:after {

display: block;

content'';

position: absolute;  

width20px;

height160px;

margin-left: -20px;

z-index1;

background-color#ccc;

background-repeat: no-repeat;

background-imageradial-gradient(ellipse,rgba(255,255,255,0.840%,rgba(255,255,255,050%),

radial-gradient(ellipse,rgba(255,255,255,0.540%,rgba(255,255,255,050%),

linear-gradient(to right,rgba(0,0,0,0.74px,rgba(0,0,0,04px),

linear-gradient(to bottom,rgba(0,0,0,0.151%,rgba(0,0,0,0.052%,rgba(0,0,0,0.255%,rgba(0,0,0,08%),

linear-gradient(to left,rgba(0,0,0,0.34%,rgba(0,0,0,020%),

linear-gradient(to bottom,rgba(204,204,204,045%,#ccc 55%,rgba(204,204,204,065%),

linear-gradient(to right,rgba(0,0,0,05px,rgba(0,0,0,0.28px,rgba(0,0,0,011px),

linear-gradient(to right,rgba(255,255,255,0.55px,rgba(0,0,0,0.29px,rgba(0,0,0,013px),

linear-gradient(130deg,rgba(0,0,0,086%,rgba(0,0,0,0.387%,rgba(0,0,0,088%),

linear-gradient(-30deg,rgba(0,0,0,0.415%,rgba(0,0,0,060%);

background-size3px 6px,3px 5px,100% 100%,100% 100%,100% 10%,100% 100%,100% 60%,100% 40%,60% 100%,100% 5%;

background-position1px 4px,6px 7px,0 0,0 0,100% 60%,0 0,0 0,0 100%,55% 0,0 100%;

border-radius10px 0 0 10px;

box-shadow5px 7px 2px -5px rgb(0 0 0 / 30%), 5px 8px 1px -5px rgb(255 255 255 / 50%), 3px 11px 3px -4px rgb(0 0 0 / 30%);

}

当当~~~ 得到头图

NSFileHandle_1.png

一款时代收音机就完成啦!