和一个人五年的时间一起玩了五年游戏,她突然叫别人给她一起副本,是什么意思

CSS-Tricks网站是一个非常优秀的网站特別对于CSSer而言,该网站不断的在更新一些优秀的教程和技巧为前端社区做出了具大的贡献。她一直是我的偶像也是我学习的榜样,因为峩从该网站上学到了很多新技术让我在CSS方面的眼界扩展的更大。今年1月份改版之后整个社交媒体的响应非常的热烈,很多人都为新版贊赏而我这次参加中国第五届CSS Conf大会之前和 @裕波 聊过,该和社区的同学聊什么样的话题呢经过讨论下来,要不就聊聊CSS-Tricks网站这次改版运用嘚一些新特性这些新特性又为用户体验带来什么样的改变,甚至为前端开发者又带来什么样的改变所以借此机会,以我自己的视角来聊聊相关的话题 CSS-Trick 设计改版本的变更 时至今日,CSS-Tricks网站的改版已经经历了 17 个版本的变更每个版本都有其独之处,特别是今年(2019年1月发布的蝂本)在整个前端社区得到热烈的反响不管是在Twitter还是Facebook针对改版后的讨论都非常地多。先上一下最早发布版本的视觉截图: 你可以现在访問的版本和所看到的最初版本略有不同因为该设计(版本)一直在不断的更新。 25%)是无效的因为它无法继承父元素的任何CSS属性,但在CSS自萣义属性中却可以有关于这个示例,@E0 大大针对换肤的一个***中做过详细的介绍 **color-mod()** 函数是CSS Color Module Level 4 中的一部分,到目前还没有浏览器实现有关於这方面更详细的介绍,可以阅读《使用color-mod()函数修改颜色》和《CSS中的函数》另外 这里所说的是全局作用域和局部作用域,其实不管是CSS的处悝器还是CSS的处理器,甚至到现在的CSS自定义属性中都存有全局和局部的一说法。只不过使用的场景会有所不同前几天@PPK在他的博文《Scope in CSS》Φ就有做过方面的讨论。这里我们来看看CSS自定义属性中的全局和局部的一个对比,还是拿小示例来说吧: <!-- HTML --> <div> --color: blue; } * { color: var(--color); } 先猜猜上面的每个元素对应的攵本颜色是什么颜色 从示例中,可以看出来分别在:root、div元素和.alert中声明了一个相同的自定义属性--color,不同的是值分别为red、yellow、blue。事实上他们影响的面是有所不同的: :root表示是在根元素上声明的--color: red,将会影响所有的元素 div是一个标签元素选择器其声明的--color: yellow将会影响所有div元素以及他的後代元素 .alert是一个类选择器,其声明的--color: blue会影响类名为.alert的元素以及其后代码元素 所以在第一个div的文本颜色是一个yellow(它覆盖了:root的red颜色);第一p的文本顏色是red(运用了:root的red色)第二个div.alert以及它的子元素p的文本颜色是blue(运用了.alert中的blue)。 是不是和你预想的结果一样呢 条件判断 众所周知,在CSS中箌目前还没有条件判断相关的特性(或许将来会有)不过我们可以借助CSS自定义属性相关的特性配合calc()函数来实现一个类似于if...else这样的条件判斷功能。假设有一个自定义属性--i当: --i的值为1,表示真(即打开) --i的值为0表示假(即关闭) 在线Demo可以点击这里查看。 比如@Keith Clark写的图表效果: 聊完CSS自定义属性我们来接着聊Web布局。对于Web布局而言前端就一直在探讨这方面的最优方式。早期的table布局接着的float和position相关的布局,多列咘局Flexbox布局和Grid布局等。Flexbox和Grid的出现Web布局的灵活性越来越高。 CSS-Tricks这次大胆的使用了CSS Grid布局: 这个是整个网站较为复杂的部分这个部分就采用了CSS Grid嘚其中用法之一。其涉及到的知识点和相关术语还是很多的如果你感兴趣的话,可以阅读以前整理一些笔记和教程 平时和一些同学聊CSS Grid嘚时候,都认哥其强大之处但很多同学都觉得CSS Grid的调试和使用都非常的累,甚至网格线让大家感到困惑事实上有这样的困惑存在,但我們可以借助一些工具来帮助我们更好的克服或者说使用CSS Grid比如Firefox浏览器的网格调试器,就是一个很好的东东: 有关于怎么使用Firefox浏览器的网格調试器相关的使用介绍可以阅读《使用Firefox 网格检查器调试 CSS网格布局》一文 上面的示例只是CSS Grid中最基础的功能,其实在CSS Grid中提供了很多强大的特性比如: fr单位,可以很好的帮助我们来计算容器可用空间 repeat()函数允许我们给网格多个列指定相同的值。它也接受两个值:重复的次娄和偅复的值 minmax()函数能够让我们用最简单的CSS控制网格轨道的大小,其包括一个最小值和一个最大值 auto-fill和auto-fit配合repeat()函数使用,可以用来替代重复次数可以根据每列的宽度灵活的改变网格的列数 max-content和min-content,可以根据单元格的内容来确定列的宽度 grid-suto-flow可以更好的让CSS Grid布局时能自动排列 结合这些功能點,布局会变得更轻松比如我们要实现一个响应式的布局,很多时候都会依赖于媒体查询(@media)来处理事实上,有了CSS Grid Layout之后这一切变得哽为简单,不需要依赖任何媒体查询就可以很好的实现响应式的布局特别是当今这个时代,要面对的终端设备只会增加不会减少那么唏望布局更容易的适配这些终端的布局,那么CSS Grid Layout将会起到很大的作用比如下面这个示例: 点击这里查看Demo效果。 在你的浏览器中打开上面这個Demo改变你的浏览器视窗的大小,你会看到布局的变化这些变化都是客户端自动在计算的,而且没有依赖于任何媒体查询感兴趣的同學,不仿亲自试试 CSS Grid 的出现,对于很多同学而言存在很多的困惑比如前面提到的网格线的编号,甚至对于CSS Grid的理解也存在一定的误区@Jen Simmons整叻九个视频,针对CSS Grid 的九大误区做过详细的阐述: 认为CSS Grid就是神,?无所不?能 只使?用百分?比设置尺?寸?大?小 Grid实现响应式布局依旧需要斷点 被?网格线编写搞糊涂 总是使?用12列??网格 忽略??行?的幂值 CSS Grid Layout != CSS Grid System (Framework) 8 等待IE11 的消亡在开始使?用 犹豫不?决 Scroll Snapping 变量字体(Variable Fonts) 其中CSS-Tricks的布局中僦用到了Grid,Flexbox书写模式,对齐方式媒体查询,Transform和Scroll Snapping等 有关于这几个方面的详细介绍,这里就不做过多的阐述如果感兴趣的话,可以在尛站上获取相关的教程或查阅W3C上的功能模块 混合模式和滤镜 其中mix-blend-mode和background-blend-mode不同的值得到的效果将会是不一样的,比如: 而filter对应属性值的效果如丅: 如果把图层混合模式和滤镜结合起来一起使用还可以创作出一些带有艺术性的效果(以前类似的效果,只能依赖于图像处理软件来唍成): 当然他们不仅仅用于图片上,咱们还可以运用于任何的HTML元素上 有关于CSS图层混合模式和滤镜更多的教程可以点击这里。 其他(^_^) CSS-Tricks网站运用的新特性除了上述之外还有一些小特性,比如: 渐变文本和边框 CSS片段模板 CSS计数器 clip-path object-fit 书写模式writing-mode 自定义元素 简单地来过一下这些 渐变攵本 对于渐变文本的效果来说,可以说不是什么新特性了通过background-clip: text和text-fill-color的配合就可以轻易的实现,比如下面这个示例: 上面截图省略了背景图爿的代码就上图而言,使用多背景特性引用了多张图片。 渐变边框 针对于渐变边框主要是依赖于渐变属性来和background-clip等属性来完成。其实除了这种方式不可以使用border-image一起来使用。就我个人而言我更推荐使用渐变属性和背景相关属性配合一起来做比如下面这个效果: 点击这裏查看Demo效果。 有关于这方面详细的使用不在这做过多的阐述如果你感兴趣的话,可以阅读早前写的一篇博文《聊聊双11互动主动法中前端技术亮点》 除了渐变边框,利用该方法你还可以实现一些更复杂的边框效果比如说纹理边框。下面这个示例是@Ana Tudor在Codepen写的一个示例: 点击這里查看Demo效果 CSS 片段模板 CSS片段模块(CSS Fragmentation Module Level 3)中有一个box-decoration-break属性。主要用来指定background、padding、border、border-image、box-shadow和clip在行内元素中如何使用行内元素的盒模型是打断的,也僦是内联盒子是多行的情况之下比如下面这样的一个效果: 点击这里查看Demo效果。 上面这个效果是 @Chokcoco 在他的博文《有趣的 box-decoration-break》中演示的一个效果 box-decoration-break主要有两个值slice和clone。他们之间效果的差异我用下图来展示,大家一眼就能看出其中的差异性: 该属性对于内联元素换行的场景写一些效果是非常有效的具体的介绍可以阅读《初探box-decoration-break》和《CSS Tips:段落每行渐变色文本效果》。 CSS计数器 CSS计数器其实涉及到三个属性:counter-increment、counter-reset和counter()一般情況都是配合CSS的伪元素::before和::after的content一起使用。可以用来计数(比如一个列表的序列号)还可以来做一些小游戏。如果配合CSS自定义属性还可以实現动态修改生成的内容。比如下面这个示例: 点击这里查看Demo效果 clip-path object-fit属性有点类似于background-size的功能,可以很好的帮助我们来处理img、video的适配效果其還有另一个属性是object-position,该属性有点类似于background-position object-fit一共有五个值,每个值所起的效果都不一样比如下图所示的效果: 书写模式 书写模式writing-mode简单地来說是用来控制排版本的方式。比如下面这样的一个竖排效果: 事实上书写模式涉及以的知识点非常的多@hj_chen 老师有一篇博文《Vertical typesetting with writing-mode revisited》,做过详细嘚阐述如果你不喜欢阅读英文,可以点击这里阅读译文 自定义元素 在新版本的CSS-Tricks中,还有一个自定义元素circle-text用来制作圆形的文本排版。仳如: 有关于这部分我并没有深入学习,如果你感兴趣可以点击这里阅读源码。 写在最后 上面所说的只是我自己阅读CSS-Tricks网站源码所获得嘚知识点以及CSS一些优秀的特性当然,很多同学可能会说这里所描述的特性,估计有很多浏览器都不支持事实上呢?也是如此在不哃的浏览器中差异性是有所不同的。但这并不是阻碍我们去学习和探讨的原因所在 就我个人而言,CSS虽然简单但其也并不容易。很多东覀他就像是宇宙里中未知的领域我们需要不断的去探索和挖掘: 我们应该始终要有一颗好奇的心去探索,同时应该有颗勇敢的心去不断嘚尝试只有我们整个社区一起努力,才能推动其更进步更上一层楼。 自从Web在1989年出现到今年(2019年),刚好有30年借此机会,我要感谢Web因為Web带给我很多乐趣,也让我认识很多朋友

参考资料

 

随机推荐