首页 > 矢量素材 > 知识 > css怎么玩,有趣的 CSS 数学函数

css怎么玩,有趣的 CSS 数学函数

来源:整理 时间:2023-08-25 14:59:06 编辑:航空兔素材 手机版

1,有趣的 CSS 数学函数

前言 之前一直在玩 three.js ,接触了很多数学函数,用它们创造过很多特效。于是我思考:能否在 CSS 中也用上这些数学函数,但发现 CSS 目前还没有,据说以后的新规范会纳入,估计也要等很久。 然而,我们可以通过一些小技巧,来创作出一些属于自己的 CSS 数学函数,从而实现一些有趣的动画效果。 让我们开始吧! 注意 :以下的函数用原生 CSS 也都能实现,这里用 SCSS 函数只是为了方便封装,封装起来的话更方便调用 绝对值就是正的还是正的,负的变为正的 可以创造 2 个数,其中一个数是另一个数的相反数,比较它们的最大值,即可获得这个数的绝对值 原数减 1 并乘以一半即可 数轴上两点距离就是两点所表示数字之差的绝对值,有了上面的绝对值公式就可以直接写出来 其实这个也不会实现~不过之前看到过 一篇文章[1] 写到了如何在 CSS 中实现三角函数,在此表示感谢 以下的几个动画特效演示了上面数学函数的作用 创建一排元素,用内部阴影填充,准备好我们的数学函数 这里用了 2 个动画: 地址: Symmetric Line Animation[2] 如何将一维的升成二维?应用网格系统即可 跟上面的动画一模一样 地址: Symmetric Grid Animation[3] 可以换一种动画 shuffle (穿梭),会产生另一种奇特的效果 地址: Shuffle Grid Animation[4] 创建 7 个不同颜色的(这里直接选了彩虹色)列表,每个列表有 40 个子元素,每个子元素是一个小圆点 让这 7 个列表排列在一条线上,且 z 轴上距离错开,设置好基本的 delay 运用上文的三角函数公式,让这些小圆点以余弦的一部分形状进行排列 对每个小圆点应用上下平移动画,平移的距离就是余弦的波动距离 跟上面一个套路,计算从中间开始的 delay ,再应用到动画上即可 CSS 数学函数能实现的特效远不止于此,希望通过本文能激起大家创作特效的灵感~ [1]在 CSS 中使用三角函数绘制曲线图形及展示动画: https://github.com/chokcoco/iCSS/issues/72 [2]Symmetric Line Animation: https://codepen.io/alphardex/pen/vYmqvpe [3]Symmetric Grid Animation: https://codepen.io/alphardex/pen/zYwgdZO [4]Shuffle Grid Animation: https://codepen.io/alphardex/pen/YzVmYaV [5]Rainbow Sine: https://codepen.io/alphardex/pen/GREKJbL

有趣的 CSS 数学函数

2,让CSS样式表优化更整洁而简短

CSS简写就是指将多行的CSS属性声明化成一行,又称为CSS代码优化。CSS简写的最大好处就是能够显著减少CSS文件的大小,其实还有很多其他益处。臃肿而杂乱的CSS样式表会使你遇到问题是难以调试。尤其是当一个团队在进行设计的时候,你的臃肿的CSS代码会使你的团队其他成员的工作效率下降。今天,整理了一些CSS简写技巧,它们其实是CSS最常用的写法,但是太多的人使用Dreamweaver这种所见即所得软件来编写CSS,使得代码过于臃肿。不过没关系,看过本文之后,你一能能掌握CSS代码优化的技巧,今后让你的每一个CSS样式表都看起来整洁而简短吧。属性值为0书写原则是如果CSS属性值为0,那么你不必为其添加单位(如:px/em),你可能会这样写:padding: 10px 5px 0px 0px;试试这样吧:padding: 10px 5px 0 0;移除选择器选择器是你在为一些元素应用CSS样式时的基本方法,比如h1, h2, h2, div, strong, pre, ul, ol等等如果你使用了class(.类名)或ID(#id名),那么就不用再在声明CSS时包含选择器了。div#logowrap尝试扔掉多余的选择器吧:#logowrap在这个例子中所谓的那个选择器就是div*总爱和你开玩笑要明智的使用*而避免它在整个CSS样式表中乱开玩笑,*是个通配符,你可以使用它来为你的设计部分或全部进行一系列CSS声明。例如:* margin: 0;}这个声明会将所有元素的margin值设置为0,同样的,为了严谨起见,你可以尝试这样设置:#menu * margin: 0;}这样的声明是指将#menu下的所有元素的margin设为0。背景背景(background)属性可能会包含设置背景色、背景图、背景图的位置和背景图重复方式的参数,你可能会写成:background-image: url(”logo.png”);background-position: top center;background-repeat: no-repeat;其实可以写成:background: url(logo.png) no-repeat top center;颜色颜色(color)属性在CSS通常指定为一个十六进制的值,一个#加6位数,他的简写方式是如果颜色值由成对儿出现的三对而数字组成,你可以省略掉没对中的一个数字。#000000 可以写成 #000, #336699 可以写成 #369这种简写技巧只适用于成对出现的颜色值,其它颜色值不适用这种技巧,比如:#010101, #223345, #FFF000Margin(外边距/空白边)声明CSS magin值得时候通常会写成这样:margin-top:0px;margin-right:10px;margin-bottom:0px;margin-left:10px;让我们试试把值为0的单位去掉,并把4条声明合并成一条声明:margin:0 10px 0 10px;当你生命padding、margin、border(还有一些其他属性)时,记得要把按照顺时针的方向来声明属性值,也就是按照上-右-下-左的方向。关于这些属性还有另一个更加简单的写法,看看属性中上和下、左和右是否值是相等的,如果是那么就可以进一步优化了,你可以省略掉后两个值,剩下的两个值前者指上下,后者指左右:margin:0 10px;它是指左右的值为10px,上下的值为0;Padding(内边距)padding的简写技巧等同于margin:padding-top:0px;padding-right:10px;padding-bottom:0px;padding-left:10px;可以写成:padding: 0 10px;Borders(边框)边框的简写方式相比其它生命来说会比较复杂,很多CSSer一开始都容易记混它的简写顺序,如果你想声明一个1像素宽的实线黑色边框,可能会写成:border-width:1px;border-style:solid;border-color:#000;其实可以写成:border:1px solid #000;注意:这里的颜色值已经使用了上面讲过的颜色简写方法了哦。我们还可以为四个边设置不同的宽度:border-top-width:1px;border-right-width:2px;border-bottom-width:3px;border-left-width:4px;可以简写成:border-width:1px 2px 3px 4px;最后,我们还可以只设置左和右的边的样式:border-right:1px solid #000;border-bottom:1px solid #000;虽然并没减少多少代码,但暴风彬彬建议写成这样:border:1px solid #000;border-width:0 1px 1px 0;先设置四个边的默认风格,然后声明具体的哪个边要显示。文字文字属性也有很多可能会用到的属性值,像背景一样,你可能会声明这种复杂的文字样式:font-style:italic;font-variant:small-caps;font-weight:bold;font-size:1em;line-height:150%;font-family:宋体, Arial, sans-serif;其实可以优化成一行:font:italic small-caps bold 1em/150% 宋体, Arial, sans-serif;列表list-style-type:square;list-style-position:inside;list-style-image:url(filename.gif);可以写成:list-style:square inside url(filename.gif);希望这10个CSS缩写技巧能对你的CSS书写有所帮助

让CSS样式表优化更整洁而简短

文章TAG:css怎么玩有趣的CSS数学函数

最近更新

矢量素材排行榜推荐