如何创作按钮被从纸上掀起的立体效果

效果预览

在线演示

按下右侧的“点击预览”按钮可以在当前页面预览,点击链接可以全屏预览。

https://codepen.io/comehope/pen/KRbXGe

可交互视频教程

此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。

请用 chrome, safari, edge 打开观看。

https://scrimba.com/c/c3e8dCB

源代码下载

本地下载

每日前端实战系列的全部源代码请从 github 下载:

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

代码解读

定义 dom,标准的导航版式:

<nav>
    <ul>
        <li>Home</li>
    </ul>
</nav>

居中显示:

html, body {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(cadetblue, darkcyan);
}

设置容器的样式,把背景色声明为变量:

nav {
    width: 300px;
    height: 300px;
    --bgcolor: lemonchiffon;
    background-color: var(--bgcolor);
    box-shadow: 0 5px 30px rgba(0, 0, 0, 0.2);
    border-radius: 10px;
    padding: 30px 0;
    box-sizing: border-box;
}

去掉列表符,让菜单项居中显示:

nav ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
}

设置菜单项的文字样式:

nav ul li {
    color: brown;
    font-size: 20px;
    font-family: sans-serif;
}

为菜单项增加鼠标划过效果:

nav ul li {
    padding: 0.5em 1em;
    border-radius: 0.5em;
    transition: 0.5s ease-out;
}

nav ul li:hover {
    box-shadow: 0 4px 4px rgba(0, 0, 0, 0.1),
                0 6px 6px rgba(0, 0, 0, 0.1),
                0 8px 8px rgba(0, 0, 0, 0.1),
                0 12px 12px rgba(0, 0, 0, 0.1);
    transform: scale(1.05) translateY(-0.25em) perspective(300px) rotateX(20deg) ;
}

dom 中再增加几个菜单项:

<nav>
    <ul>
        <li>Home</li>
        <li>Products</li>
        <li>Services</li>
        <li>Contact</li>
    </ul>
</nav>

最后,调整一下菜单项布局:

nav ul {
    justify-content: space-between;
    flex-direction: column;
}

大功告成!

原文地址:https://segmentfault.com/a/1190000014930183

原文地址:https://www.cnblogs.com/datiangou/p/9994059.html

时间: 2024-10-09 06:36:04

如何创作按钮被从纸上掀起的立体效果的相关文章

26.纯 CSS创作按钮被从纸上掀起的立体效果

原文地址:https://segmentfault.com/a/1190000014930183 感想:主要2D和3D转换.阴影效果. HTML代码: <nav> <ul> <li>Home</li> <li>Products</li> <li>Services</li> <li>Contact</li> </ul> </nav> CSS代码: html, bod

移动端input标签按钮为什么在苹果手机上还有一层白色?

移动端input标签按钮为什么在苹果手机上还有一层白色? 解决办法:其实蛮简单的,就加一个属性就好了 1 input { outline:0px ; -webkit-appearance: none; } 这样的话就没有了,这是苹果浏览器自带的样式,需要删掉,小编亲测可用,大家可以试试

监听当点击微信等app的返回按钮或者浏览器的上一页或后退按钮的事件

在实际的应用中,我们常常需要实现在移动app和浏览器中点击返回.后退.上一页等按钮实现自己的关闭页面.调整到指定页面或执行一些其它操作的 需求,那在代码中怎样监听当点击微信.支付宝.百度糯米.百度钱包等app的返回按钮或者浏览器的上一页或后退按钮的事件呢. 首先我们要了解浏览器的history.大家知道在页面中我们可以使用JavaScript window history,后退到前面页面,但是由于安全原因javascript不允许修改 history里已有的url链接,但可以使用pushStat

弹出输入文本框上弹的动画效果

先看以下简单的模型图片效果,有图才有真相: 软键盘弹出效果: 终极效果实现: 效果呢就是这样: 简单解释一下:由于显示页面要承载很多的信息内容,所以在让用户发布动态的时候,要求从页面的底部以动画的方式向上抽出.当弹出软键盘输入法的时候,要避免输入框被全部遮挡或者部分遮挡.则,软键盘要把输入文本框顶起来,完全的托起来. 那么,就要完成这几步骤: 1,在该页面的类中(Actiivty或者fragment),在加载该布局之前添加这句话,其作用是使文本框根据软键盘弹出自动调节位置和大小: getWind

吸收效果,像是在Mac上的垃圾桶的效果一样

1 #import "AppDelegate.h" 2 #import <QuartzCore/QuartzCore.h> 3 4 @interface AppDelegate () 5 @property (nonatomic ,strong)UIImageView *birdImage; 6 @end 7 8 @implementation AppDelegate 9 10 - (BOOL)application:(UIApplication *)application

在PHP当中制作隔行换色的效果以及制作上下翻页的效果!

首先说明隔行换色的效果,需要用到tr:nth_child(odd);或者括号里的值是even,odd是从第一行开始隔一行,even是从第二行开始: 具体代码如下图案所示: 1 <style> 2 /*tr:nth-child(even){*/ 3 /*background: #cad9ea;*/ 4 /*}*/ 5 </style> 在数据库当中查询第几条开始和我们需要显示的数据只要几条:我们可以用到limin语句,具体代码如下: 1 $sql = "select * f

JS实现图片上传预览效果:方法一

<script type="text/javascript"> //处理file input加载的图片文件 $(document).ready(function(e) { //判断浏览器是否有FileReader接口 if(typeof FileReader =='undefined') { /*$("#images_show").css({'background':'none'}).html('亲,您的浏览器还不支持HTML5的FileReader接口

Android 下拉刷新上拉加载效果功能,使用开源项目android-pulltorefresh实现

应用场景: 在App开发中,对于信息的获取与演示,不可能全部将其获取与演示,为了在用户使用中,给予用户以友好.方便的用户体验,以滑动.下拉的效果动态加载数据的要求就会出现.为此,该效果功能就需要应用到所需要的展示页面中. 知识点介绍: 本文主要根据开源项目android-pulltorefresh展开介绍. android-pulltorefresh [一个强大的拉动刷新开源项目,支持各种控件下拉刷新 ListView.ViewPager.WevView.ExpandableListView.G

Android 下拉刷新上拉加载效果功能

应用场景: 在App开发中,对于信息的获取与演示,不可能全部将其获取与演示,为了在用户使用中,给予用户以友好.方便的用户体验,以滑动.下拉的效果动态加载数据的要求就会出现.为此,该效果功能就需要应用到所需要的展示页面中. 知识点介绍: 本文主要根据开源项目android-pulltorefresh展开介绍. android-pulltorefresh [一个强大的拉动刷新开源项目,支持各种控件下拉刷新 ListView.ViewPager.WevView.ExpandableListView.G