CSS 模拟实现 Material Design 样式的悬浮操作按钮_html/css_WEB-ITnose
撰写于 2016年6月5日 修改于 2016年6月5日分类编程杂记标签前端
Material Design 的悬浮操作按钮虽然会挡住一部分页面内容,但的确提供了一种不错的表现操作按钮的思路。手里一个微信的项目正好准备试试用这种风格来表现创建一类的操作。关于 Material Design 的按钮介绍,可以看 这里。
这里实现一个类似于 Gmail App 中的新建邮件按钮风格类似的样式,为了简便,就直接使用一个样式来完成,元素的 HTML 如下:
<div class="float-action-button"></div>
按钮的定位
悬浮操作按钮一般是位于屏幕的右下方,并且位置不随网页的滚动而变化。这可以通过设置 position为 fixed来实现,位置则通过 bottom和 right来指定。另外还修改一下光标的指针样式:
.float-action-button { position: fixed; right: 20px; bottom: 20px; cursor: pointer;}
按钮的颜色与形状
这里的颜色包括四个,分别是:
- 按钮的主体背景色
- 按钮的边框颜色
- 按钮中铅笔图标的铅笔颜色
- 按钮的阴影色
其中前两个颜色类似,而主体色要比边框色稍微浅一点。如果你有颜色选择困难症,可以直接使用 Material Design 颜色推荐表,或者试试这两个扁平化设计颜色推荐网站: flatuicolorpicker.com、 flatuicolors.com。我用的是 flatuicolorpicker 上的颜色。
圆形通过设置 border-radius可以实现,其值大于 50%时可以表现为圆形。这里借助 padding来设置按钮的大小。
设置颜色和形状如下:
.float-action-button { background-color: #D91E18; color: #F2F1EF; border-radius: 50%; padding: 30px;}
按钮的图标
按钮中有一个铅笔的图标,这里为了简单,直接使用一个图片来实现。目前发现的最丰富的图标资源站,当然是 iconfont,搜索 pencil可以找到 258 个图标,挑一个就行。但要注意,因为背景色为深色,为了使铅笔看起来相对明显一点,最好选择图标中着色面积大的。鼠标指向图标可以显示下载按钮,着色要与背景色形成对象,使用白色,或者浅灰,这里直接使用 iconfont 推荐的 #ecf0f1。
背景图要设置为居中,不重复。大小为整个按钮大小的一半——将 background-size设置为 padding值即可。
.float-action-button { background-image: url('./pencil.png'); background-repeat: no-repeat; background-position: center; background-size: 30px;}
按钮的边框
按钮有一个很细的边框,颜色相对背景色要稍深一点,通过 border来设置:
.float-action-button { border: 1px solid #CF000F;}
按钮的阴影
CSS 的阴影有两种, text-shadow和 box-shadow,前者用于指定文字阴影,这里要使用 box-shadow,它典型的值有五个,分别是x轴偏移、y轴偏移、blur 模糊的半径、发散半径、阴影颜色。悬浮操作按钮只有 y 轴偏移。而且颜色很浅。
.float-action-button { box-shadow: 0px 3px 9px 2px #BFBFBF;}
悬停样式
当鼠标经过和点击之后,要模板一个按钮按下的效果,直接通过修改背景色和加大阴影 y 轴偏移即可,如下:
.float-action-button:hover { background-color: #F22613; box-shadow: 0px 6px 9px 2px #BFBFBF;}
最终效果
请参见Demo。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

公众号网页更新缓存,这玩意儿,说简单也简单,说复杂也够你喝一壶的。你辛辛苦苦更新了公众号文章,结果用户打开还是老版本,这滋味,谁受得了?这篇文章,咱就来扒一扒这背后的弯弯绕绕,以及如何优雅地解决这个问题。读完之后,你就能轻松应对各种缓存难题,让你的用户始终体验到最新鲜的内容。先说点基础的。网页缓存,说白了就是浏览器或者服务器为了提高访问速度,把一些静态资源(比如图片、CSS、JS)或者页面内容存储起来。下次访问时,直接从缓存里取,不用再重新下载,速度自然快。但这玩意儿,也是个双刃剑。新版本上线,

本文讨论了使用HTML5表单验证属性,例如必需的,图案,最小,最大和长度限制,以直接在浏览器中验证用户输入。

本文展示了使用CSS为网页中添加有效的PNG边框。 它认为,与JavaScript或库相比,CSS提供了出色的性能,详细介绍了如何调整边界宽度,样式和颜色以获得微妙或突出的效果

本文讨论了html&lt; datalist&gt;元素,通过提供自动完整建议,改善用户体验并减少错误来增强表格。Character计数:159

本文讨论了HTML&lt; meter&gt;元素,用于在一个范围内显示标量或分数值及其在Web开发中的常见应用。它区分了&lt; meter&gt;从&lt; progress&gt;和前

本文解释了HTML5&lt; time&gt;语义日期/时间表示的元素。 它强调了DateTime属性对机器可读性(ISO 8601格式)的重要性,并在人类可读文本旁边,增强Accessibilit

本文讨论了HTML&lt; Progress&gt;元素,其目的,样式和与&lt; meter&gt;元素。主要重点是使用&lt; progress&gt;为了完成任务和LT;仪表&gt;对于stati
