【每日一练】33—CSS 3D 搜索框的 UI 实现效果

7db534acb49e5c1ac50cf79de952786a.png

写在前面

今天练习的这个效果是一个3D搜索框,这个搜索功能的需求几乎在每个项目中都会遇到,而搜索功能的主要目的就是便于我们查找需要的内容,因此,我们在很多项目中,都会将其放在显眼的位置,同时,又不想让它占据太多页面位置,那怎么办呢?因此,我们就想到让其占一个小位置,在需要的时候进行加载,这个就是我们今天练习的小项目内容。

现在,我们一起来看一下它的最终效果:

b7d3d6b2a587e6cb828f1b16abe1cd74.gif

HTML代码:

<!DOCTYPE html>
<html>
<head>
  <title>【每日一练】33—CSS 3D 搜索框的 UI 实现效果</title>
</head>
<body>
  <div class="inputBox">
    <div class="shadow"></div>
    <input type="text" placeholder="输入你需要查找的内容">
    <ion-icon name="search-outline"></ion-icon>
  </div>
  <script type="module" src="https://unpkg.com/ionicons@5.5.2/dist/ionicons/ionicons.esm.js"></script>
  <script nomodule src="https://unpkg.com/ionicons@5.5.2/dist/ionicons/ionicons.js"></script>
</body>
</html>

CSS代码:

*
{
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: consolas;
}
body 
{
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  overflow: hidden;
  background: #cfd1e1;
}
.inputBox
{
  position: relative;
  width: 65px;
  height: 50px;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: 0.5s;
}
.inputBox:hover 
{
  width: 400px;
}
.inputBox::before 
{
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 10px;
  height: 100%;
  z-index: 1;
  background: linear-gradient(#fff,#fff,#e3e3e3);
  filter: blur(1px);
}
.inputBox::after 
{
  content: '';
  position: absolute;
  top: 1px;
  right: -1px;
  width: 10px;
  height: 100%;
  z-index: 1;
  background:#9d9d9d;
  filter: blur(1px);
}
.shadow
{
  content: '';
  position: absolute;
  top: 0;
  left: -50px;
  width: calc(100% + 50px);
  height: 300px;
  background: linear-gradient(180deg,rgba(0,0,0,0.1),transparent,transparent);
  transform-origin: top;
  transform: skew(45deg);
  overflow: hidden;
  pointer-events: none;
}
.shadow::before 
{
  content: '';
  position: absolute;
  top: 0;
  width: 50px;
  height: 50px;
  background: #cfd1e1;
  z-index: 1;
}
.inputBox input 
{
  position: relative;
  width: 100%;
  height: 100%;
  border: none;
  padding: 10px 25px;
  outline: none;
  font-size: 1.1em;
  color: #555;
  background: linear-gradient(#dbdae1,#a3aaba);
  box-shadow:  5px 5px 5px rgba(0,0,0,0.1),
  15px 15px 15px rgba(0,0,0,0.1),
  20px 20px 15px rgba(0,0,0,0.1),
  30px 30px 15px rgba(0,0,0,0.1),
  inset 1px 1px 2px #fff;
}
.inputBox input,
.inputBox input::placeholder
{
  color: transparent;
}
.inputBox:hover input,
.inputBox:hover input::placeholder
{
  color: #555;
}
ion-icon
{
  position: absolute;
  right: 20px;
  font-size: 1.5em;
  cursor: pointer;
  color: #555;
}

写在最后

到今天,我们进行了33个小项目的练习了,不知道你坚持了没有,后面我们可能会做一些静态页面的练习了,每天尝试着去练习一些简单的静态页面。

其实,写页面真的就好像小孩子玩乐高搭积木一样,我们把每块内容练习学会后,然后,再通过一步一步的拼装,把需要的内容装到页面的盒子里,最终,就会出来一个静态页面的效果,最后,再根据自己需要的样子,慢慢调整CSS样式,就算你不会设计,按照一定规则写出来的页面也不会太差。

当然,如果想要视觉效果好,提升美感,这个也需要我们平日里多提升自己的审美能力。

总之,多看,多练,把自己看到的,认为好的东西,都去实现一遍,然后再通过自我不断改善。

好了,以上就是我今天跟你分享的【每日一练】的全部内容,希望你能有所收获,如果你觉得我今分享的内容对你有帮助的话,请点赞我,关注我,并将它分享给你身边做开发的朋友,也许能够帮助到他。

我是杨小爱,我们明天见。

学习更多技能

请点击下方公众号

77d3a45632d0e1411f3f9a28211cd6c8.gif

e98a343dce6ae2477dcdd49a3c7ef510.jpeg

be9ac7ddcfb5fee9584dfacbc42a34df.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值