搜索
首页web前端css教程几个好用的css函数小技巧

几个好用的css函数小技巧

Nov 20, 2017 pm 01:19 PM
css技巧

CSS为HTML标记语言提供了一种样式描述,定义了其中元素的显示方式。CSS在Web设计领域是一个突破。利用它可以实现修改一个小的样式更新与之相关的所有页面元素。在这篇文章中我们将会介绍CSS函数中8种有用的小技巧。

1.纯CSS Tooltip

许多网站还是在使用JavaScript来创建Tooltip效果,但实际上通过CSS能更简单的实现。最简单的方法是在你的HTML代码中添加一个带有提示文本的属性,比如 data-tooltip="…" 。然后你就可以在你的CSS文件中添加以下的代码通过 attr() 函数来显示提示文字:

.tooltip::after {    content: attr(data-tooltip);
}

相当简单对吧?当然实际上我们还需要更多的代码来给提示增加样式,但是不用担心,已经有了为此设计的强大且纯粹的叫 Hint.css 的CSS库和 Balloon.css 。

2.使用自定义数据属性和 attr() 函数

我们已经学会如何使用 attr() 来创建提示,另外还有一些场景能使用到这个函数。通过与数据属性相结合,你可以通过很简单的一行HTML代码来创建带有标题和描述的缩略图:


   Illustration

现在你可以通过 attr() 函数来显示标题与描述:

.caption::after {    content: attr(data-title);
   ...
}

以下为具体的例子:

注意:这个方法在浏览器支持方面可能会有一些问题,具体内容你可以查看 Accessibility support for CSS generated content 这篇文章。

3. CSS Counters

你可以通过CSS Counters实现超棒的功能。这不是一个非常为人熟知的属性,大多数人甚至可能认为浏览器不能很好的支持这个属性,但事实上所有的浏览器都支持这个属性:

但是你不应该将CSS counters使用在有序列表

    上,它更适合使用在类似分页或者图片库下面显示的数字上。你可以通过下面的例子看出如何使用很少的代码(甚至不使用JavaScript)来对选中的项目进行计数:

    CSS counters也非常适合显示可通过拖放进行重新排序的项目列表上动态变化的数字:

    正如最后一个例子,我们需要记住,通过该方法生成的内容在可访问性上可能会有些问题。

    4.CSS滤镜实现的磨砂效果

    在iOS7中,苹果实现了“磨砂玻璃”的效果--半透明的,模糊的元素,看起来像覆盖了一层磨砂玻璃。受到苹果的启发,这种效果被运用到很多地方。在CSS滤镜出现之前要重现这个效果还是有些棘手的。你必须通过使用 模糊图片 来实现这种毛玻璃的效果。但现在CSS滤镜得到了几乎所有的主流浏览器的支持,所以要 重现这个效果 就简单很多了。

    在未来,我们可以通过背景过滤器和 filter() 函数 来实现这样的效果,但目前只有 Safari 同时支持这两个功能。

    有关于CSS的 filter 更多的介绍可以点击这里进行了解。

    5.将HTML元素作为背景

    一般我们可以设置一个JPEG或者PNG文件作为背景,或者也可以设置一个渐变的背景。但是你知道可以通过使用 element() 函数,从而将一个

    设置为背景图片吗?现在, element() 函数只有在Firefox中得到了支持:

    可能性是无止境的, 这里 是MDN上的一个例子。

    有关于CSS的 element() 函数的相关介绍可以点击这里。

    6.通过 calc() 创建更好的网格

    流体网格虽然很棒但是仍然存在很严重的问题。比如,在顶部和底部的间距大小几乎不可能与在左边和右边的间距大小相同。另外,若使用的网格系统不一样,标记就会非常混乱。虽然弹性布局不是最终的解决方案,但是通过与 calc() (可以在CSS文件中作为一个属性值)相结合,我们能够创建一个更好的网格。在 这里 ,George Martsoukos列举了很多例子,比如拥有完美间距的画廊网格。通过使用CSS预编译语言,比如Sass, 组建一个创造性的网格系统 可以非常简单且易于维护。同时浏览器对 calc() 的支持几乎完美,因此 calc() 绝对是你应该掌握的一个功能。

    有关于CSS的 calc() 函数相关的介绍可以点击这里。

    7. 通过 calc() 对齐 position:fixed 元素

    calc() 的另一个作用是用来对齐 position:fixed 的元素。比如,你有一个内容封装器,它左右都有流动的间距,你希望在这个内容封装器内精确对齐 position 为 fixed 的元素,但是这种情况下要计算出 left 和 right 属性的具体赋值就很困难。通过 calc() ,你可以结合相对和绝对的值来精确定位你的元素:

    .wrapper {    max-width: 1060px;    margin: 0 auto;
    }.floating-bubble {    position: fixed;    right: calc(50% - 530px); /* 50% - half your wrapper width */}

    比如:

    有关于这方面的详细介绍可以阅读 @brnnbrn 写的《 Aligning position:fixed Elements with CSS calc 》一文。

    8.使用 cubic-bezier() 实现动画

    为了使一个网站或者APP的用户界面更具有吸引力,你可使用一些动画,但是可以选择的过渡效果的速度曲线是相当有限的,比如, linear 或者 ease-in-out 。而标准的速度曲线连弹力运动的效果都实现不了。通过使用 cubic-bezier() 函数,你可以精确实现你想要的动画效果。

    有两种方法使用 cubic-bezier() ——了解 背后的机制 后自己创建,或者是使用 cubic-bezier 生成器 。

    说实话,我使用的是后者。

    有关于 cubic-bezier() 详细的介绍可以点击这里。

    总结

    更加聪明的使用CSS函数不仅仅可以解决上面的问题比如创建一个更好的网格,它还可以给你更多的创作自由。随着浏览器支持越来越好,你可以使用CSS函数比如 calc() 来修改和提升一下你之前的CSS代码。

    本文根据 @Anselm Urban 的 《8 Clever Tricks with CSS Functions》 所译,整个译文带有我们自己的理解与思想,如果译得不好或有不对之处还请同行朋友指点。如需转载此译文,需注明英文出处: https://www.sitepoint.com/8-clever-tricks-with-css-functions 。

    以上就是8个css函数小技巧,觉得不错的小伙伴们赶紧收藏起来吧。

    相关推荐:

    Jquery css函数实现动态操纵DOM节点的样式

    CSS3 画各种基本图形小技巧

    最全的CSS开发常用技巧

    以上是几个好用的css函数小技巧的详细内容。更多信息请关注PHP中文网其他相关文章!

    声明
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
使用页面CMS进行静态站点内容管理使用页面CMS进行静态站点内容管理May 13, 2025 am 09:24 AM

我知道,我知道:有大量的内容管理系统选项可用,而我进行了几个测试,但实际上没有一个是一个,y'知道吗?怪异的定价模型,艰难的自定义,有些甚至最终成为整个&

链接HTML中CSS文件的最终指南链接HTML中CSS文件的最终指南May 13, 2025 am 12:02 AM

链接CSS文件到HTML可以通过在HTML的部分使用元素实现。1)使用标签链接本地CSS文件。2)多个CSS文件可通过添加多个标签实现。3)外部CSS文件使用绝对URL链接,如。4)确保正确使用文件路径和CSS文件加载顺序,优化性能可使用CSS预处理器合并文件。

CSS Flexbox与网格:全面评论CSS Flexbox与网格:全面评论May 12, 2025 am 12:01 AM

选择Flexbox还是Grid取决于布局需求:1)Flexbox适用于一维布局,如导航栏;2)Grid适合二维布局,如杂志式布局。两者在项目中可结合使用,提升布局效果。

如何包括CSS文件:方法和最佳实践如何包括CSS文件:方法和最佳实践May 11, 2025 am 12:02 AM

包含CSS文件的最佳方法是使用标签在HTML的部分引入外部CSS文件。1.使用标签引入外部CSS文件,如。2.对于小型调整,可以使用内联CSS,但应谨慎使用。3.大型项目可使用CSS预处理器如Sass或Less,通过@import导入其他CSS文件。4.为了性能,应合并CSS文件并使用CDN,同时使用工具如CSSNano进行压缩。

Flexbox vs Grid:我应该学习两者吗?Flexbox vs Grid:我应该学习两者吗?May 10, 2025 am 12:01 AM

是的,youshouldlearnbothflexboxandgrid.1)flexboxisidealforone-demensional,flexiblelayoutslikenavigationmenus.2)gridexcelstcelsintwo-dimensional,confffferDesignssignssuchasmagagazineLayouts.3)blosebothenHancesSunHanceSlineHancesLayOutflexibilitibilitibilitibilitibilityAnderibilitibilityAndresponScormentilial anderingStruction

轨道力学(或我如何优化CSS KeyFrames动画)轨道力学(或我如何优化CSS KeyFrames动画)May 09, 2025 am 09:57 AM

重构自己的代码看起来是什么样的?约翰·瑞亚(John Rhea)挑选了他写的一个旧的CSS动画,并介绍了优化它的思维过程。

CSS动画:很难创建它们吗?CSS动画:很难创建它们吗?May 09, 2025 am 12:03 AM

CSSanimationsarenotinherentlyhardbutrequirepracticeandunderstandingofCSSpropertiesandtimingfunctions.1)Startwithsimpleanimationslikescalingabuttononhoverusingkeyframes.2)Useeasingfunctionslikecubic-bezierfornaturaleffects,suchasabounceanimation.3)For

@KeyFrames CSS:最常用的技巧@KeyFrames CSS:最常用的技巧May 08, 2025 am 12:13 AM

@keyframesispopularduetoitsversatoryand and powerincreatingsmoothcssanimations.keytricksinclude:1)definingsmoothtransitionsbetnestates,2)使用AnimatingmatematingmultationmatingMultationPropertiessimultane,3)使用使用4)使用BombingeNtibalibility,4)使用BombingingWithjavofofofofofoffo

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。