CSS自定义属性+CSS Grid网格实现超级的布局能力
短信预约 -IT技能 免费直播动态提醒
最近我还注意到的一件事就是CSS自定义属性。CSS自定义属性的工作方式有点像SASS和其他预处理器中的变量,主要的区别在于其它方法都是在浏览器中编译后生成,还是原本的CSS写法。CSS自定义属性是真正的动态变量,可以在样式表中或使用javascript即时更新,这使得它们具有更多的可能性。如果你熟悉JavaScript,我喜欢把预处理器变量和CSS自定义属性之间的区别想象成与const和let之间的区别相似——它们都有不同的用途。
CSS自定义属性可以方便的实现很多功能(例如主题变化)。最近我一直在尝试利用CSS自定义属性和CSS网格的组合能实现什么神奇的效果,我需要在不同的断点处重新定义grid-template-rows和grid-template-columns属性。下面的代码中有一个例子,我使用SASS变量定义了页面在不同的宽度下不同的列宽值,这些值将传递到grid-template-rows属性中。我对grid-gap属性也做了同样的操作,这样页面宽度不同时元素之间的间距也是不同的:
$wrapper: 1200px;$col: 1fr;$gutter: 20px;$wrapper-l: 90%;$col-l: calc((1000px - (13 * 40px)) / 12);$gutter-l: 40px;$col-xl: calc((1200px - (13 * 50px)) / 12);$gutter-xl: 50px;body { background-color: lighten(grey, 30%);}.wrapper { max-width: $wrapper; margin: 20px auto; @media (min-width: 1300px) { max-width: $wrapper-l; }}.grid { display: grid; padding: $gutter; grid-template-columns: 1fr repeat(12, $col) 1fr; grid-template-rows: repeat(2, minmax(150px, auto)); grid-gap: $gutter; border: 1px solid grey; background: white; width: auto; @media (min-width: 1300px) { grid-template-columns: 1fr repeat(12, $col-l) 1fr; grid-gap: $gutter-l; padding: $col-l; } @media (min-width: 1500px) { grid-template-columns: 1fr repeat(12, $col-xl) 1fr; grid-gap: $gutter-xl; padding: $col-xl; }}.grid__item { border: 1px solid blue;}.grid__item--heading { grid-column: 2 / 11;}
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
CSS自定义属性+CSS Grid网格实现超级的布局能力
下载Word文档到电脑,方便收藏和打印~
下载Word文档
猜你喜欢
CSS自定义属性+CSS Grid网格实现超级的布局能力
最近我还注意到的一件事就是CSS自定义属性。CSS自定义属性的工作方式有点像SASS和其他预处理器中的变量,主要的区别在于其它方法都是在浏览器中编译后生成,还是原本的CSS写法。CSS自定义属性是真正的动态变量,可以在样式表中或使用java
2023-06-03
前端开发入门到实战:CSS自定义属性+CSS Grid网格实现超级的布局能力
CSS3的animation直接提供一个 animation-play-state 属性规定动画正在运行还是暂停 。写动画样式的时候特别注意下不同浏览器的兼容性,加上对应的前缀 :div{animation-play-state:pause
2023-06-03