作家
登录

CSS 黑魔法小技巧,让你少写不必要的JS,代码更优雅

作者: 来源: 2017-09-28 09:38:01 阅读 我要评论

最终效不雅

美化radio单选框在线预览地址: 点击我呀

美化checkbox复选框在线预览地址: 点击我呀

更多关于这方面的介绍和例子可以参看 张鑫旭 大年夜神的┞封篇文┞仿: CSS radio/checkbox单复选框元素显隐技巧

11、改变 input 核心光标的色彩

需求

设计师认为默认的光标色彩有点与整体设计风格不相符,有点突兀,想换成红色的

代码

<input value=http://news.51cto.com/art/201709/"This field uses a default caret." />
input {  caret-color: auto;  display: block;  margin-bottom: .5em;}input.custom {  caret-color: red;}

最终效不雅

12、 rem 构造不再应用 JavaScript 设置

例如:以 750px 设计稿作为基准,根节点设置 font-size 为 100px ,只推敲 DPR 为 2 的情况,只推敲最简单的情况

document.querySelector('html').style.fontSize = `${window.innerWidth / 7.5 }px`;

代码

如今移动端 css3 单位 vw , wh 兼容性已经很不错了,在不须要兼容太低版本的安卓机情况下可以如许来:

html{font-size: 100vw / 750}

最终结不雅

就这么简单的设置, rem 就可以应用了

13、应用 transparent 属性实现各类三角形,提示框

需求

在不应用图片的情况,实现一个简单的三角形箭头

代码

#triangle-right {    width: 0;    height: 0;    border-top: 50px solid transparent;    border-left: 100px solid red;    border-bottom: 50px solid transparent;}

最终效不雅

复杂点的话,同样的道理还可以实现一个 五角星 ,道理都是应用 transparent 的透明属性。

14、让网站所有图片变成诟谇色彩的

需求

记得2008年时刻汶川大年夜地动时刻,很多网站图片都变成诟谇色彩明日唁逝者

代码

<img src=http://news.51cto.com/art/201709/"https://user-gold-cdn.xitu.io/2017/9/25/0844cf44a8d8c4ed026d6c488a6e9b80?imageView2/1/w/500/h/200/q/85/interlace/1" alt="" class="desaturate">
img.desaturate {    filter: grayscale(100%);    -webkit-filter: grayscale(100%);    -moz-filter: grayscale(100%);    -ms-filter: grayscale(100%);    -o-filter: grayscale(100%);}

最终效不雅

15、实现文字的波浪线效不雅

需求

实现文字波浪线的强调效不雅,如图所示

信赖大年夜家对于 text-decoration 这个属性并不陌生,在重置 a 标签的默认样式时,我们经常要如许写: text-decoration: none; 可能对它懂得的人也很少,实际上 text-decoration 是一个复合属性,由 line 、 style 和 color 构成。

所以我们可以实现如许的效不雅:

可惜的是 line 只有 underline (下划线)、 overline (上划线)和 line-through (删除线)。如不雅忽然须要下划波浪线,怎么办呢?不要急,神奇的 CSS 会帮你做到的。起首,你须要先懂得一下 渐变的应用技能 。

这里只给一个 radio 单选框的代码,仅供参考:

说一下这里的思路,我们起重要用两段渐变结垢荷琐根本元素:'X'(这里我就不放图了),下一步就比较重要了,我们要朝长进步'X'的上半部分,获得一个'V',大年夜而结合 repeat 形成波浪线。下面是用 scss 写的一个 mixin ,便利今后应用。

代码

a[href^="http"]:empty::before {  content: attr(href);}
@mixin waveline($color,$h) {        position: relative;        &::after {            content: '';            display: block;            position: absolute;            top: 100%;            left: 0;            width: 100%;            height: $h;            background: linear-gradient(135deg, transparent, transparent 45%, $color, transparent 55%, transparent 100%),                        linear-gradient(45deg, transparent, transparent 45%, $color, transparent 55%, transparent 100%);            background-size: $h * 2 $h * 2;        }    }

最终效不雅

兼容性

这些技能在当前版本的 Chrome , Firefox , Safari , 以及 Edge , 和 IE11 可以工作,移动端根本都没问题, IE 重度开辟者慎用。

相干兼容性自行查找: https://caniuse.com/

推荐一波

有趣的 GitHub 仓库

国服第一切图仔的 CSS 仓库:你想知道的 CSS 事业淫巧,在这里,都有。 iCSS -- interesting css


  推荐阅读

  对于未来互联网:AI创造了什么,毁灭了什么

近日,国外研究机构Internet Society宣布了题为《Paths to Our Digital Future(2017)》(中文译为:通往数字将来之路)的申报,阐述了后互联网时代的变革驱动力,这里对变革驱动力之一人>>>详细阅读


本文标题:CSS 黑魔法小技巧,让你少写不必要的JS,代码更优雅

地址:http://www.17bianji.com/lsqh/37641.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)