做者:Milos Protic
译者:前端小智
来源:devinduct
点赞再看,微信搜索
【大迁世界】,B站关注
【前端小智】这个没有大厂背景,但有着一股向上积极心态人。本文
GitHub
https://github.com/qq44924588... 上已经收录,文章的已分类,也整理了不少个人文档,和教程资料。
最近开源了一个 Vue 组件,还不够完善,欢迎你们来一块儿完善它,也但愿你们能给个 star 支持一下,谢谢各位了。css
github 地址:https://github.com/qq44924588...前端
简介
CSS 包含了许多函数,并且它可以完成许多早期须要用 JavaScript才能完成的事情。每一年都有新的特性被添加进来,这让咱们的开发更加轻松,也减小了对JavaScript的依赖。CSS 函数是它所具备的最强大的特性之一,在本文中,我将介绍一些我认为有用的函数。vue
attr()
attr
函数用于获取所选元素的属性值。 它接受三个参数,属性名称
,类型
和默认值
。git
语法: attr( attribute-name <type-or-unit>? [, <fallback> ]? )
事例:github
<p data-text="the attr function" data-tooltip="Hi from attr!" class="attr">This text is combined with</p>
cssweb
p::after { content: ' ' attr(data-text); } p.attr:hover::after { content: ' ' attr(data-tooltip); background-color: orange; color: white }
效果:面试
源码:https://codepen.io/protic_milos/pen/GRpYJKd微信
calc()
这个函数使咱们可以计算CSS值,而不是指定确切的值。一般用于计算元素的大小或位置。它支持加法、减法、乘法和除法。函数
须要特别注意重要一点是+
和-
运算符必须用空格隔开,否则没法正常工做。*
和/
运算符不有这限制,但出于一致性的考虑,建议添加空格。工具
另外,很棒的是,咱们能够混合CSS单位,例如,咱们能够减去百分比和像素。
咱们能够用calc
构建一个带有居中元素的示例:
<p class="calc">Centered with calc</p>
css
p.calc { padding: 10px; background-color: orange; color: white; width: 200px; text-align:center; margin-left: calc(50% - 100px) }
效果:
源码:https://codepen.io/protic_milos/pen/GRpYJKd
var()
经过这个函数,咱们可使用一个自定义属性的值做为另外一个CSS属性的值。简单地说,咱们能够定义一个颜色,例如,将它放在自定义属性(CSS变量)中,而后经过调用var
函数重用该属性值。
与CSS变量一块儿,该函数提升了可维护性并减小了重复。一个用例是为网站建立主题。
此函数接受两个参数,即自定义属性和一个默认值,若是出现问题,将使用它们。
:root { --bg-color: green; --color: white } p.var { background-color: var(--bg-color); color: var(--color) }
效果:
源码:https://codepen.io/protic_milos/pen/GRpYJKd
counter()
就我我的而言,我从未使用过这种方法,但它看起来是颇有趣。这个函数返回指定计数器的当前值,须要与 counter-reset
和counter-increment
配合使用。
咱们能够用它来计算其余元素,好比有序列表。
<div class="counter"> <span>Mars</span> <span>Bounty</span> <span>Snickers</span> </div>
源码:https://codepen.io/protic_milos/pen/GRpYJKd
circle()
这个函数建立一个圆形区域来屏蔽它所应用的元素。你能够指定它的半径和位置。一般与图像一块儿使用来建立圆角形状。此函数是clip-path
属性值。
另外,值得一提的是,除了圆以外,您还能够建立椭圆和多边形形状。
<img class="circle" src="https://devinduct.com/Uploads/PostImages/1122dcb9-954a-4641-9ca6-c38e9472698f.png" />
css
img.circle { clip-path: circle(30%); }
源码:https://codepen.io/protic_milos/pen/GRpYJKd
总结
正如我以前屡次提到的,在不少状况下,开发人员都忽视了CSS的可能性,所以失去了web站点的简单性。每年咱们均可以依靠CSS为咱们提供所需的设计能力,这很好,JavaScript 应该把注意力放在其余事情上,而不是设计上。
代码部署后可能存在的BUG无法实时知道,过后为了解决这些BUG,花了大量的时间进行log 调试,这边顺便给你们推荐一个好用的BUG监控工具 Fundebug。
原文:https://devinduct.com/63/5-us...
交流
文章每周持续更新,能够微信搜索「 大迁世界 」第一时间阅读和催更(比博客早一到两篇哟),本文 GitHub https://github.com/qq449245884/xiaozhi 已经收录,整理了不少个人文档,欢迎Star和完善,你们面试能够参照考点复习,另外关注公众号,后台回复福利,便可看到福利,你懂的。
本文同步分享在 博客“前端小智”(SegmentFault)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。