Java|如何写一份不错的CSS代码?( 二 )
CSS预处理器在预处理器中 , 同样提供了众多的方法来简化与控制CSS代码 , 以stylus为例
1. 变量font-size = 14px body font font-size Arial sans-serif pad(types = padding n = 5px) if padding in types padding n if margin in types margin nbody pad()body pad(margin)body pad(padding margin 10px) // Yields:body { padding: 5px;body { margin: 5px;body { padding: 10px; margin: 10px;
2. 函数add(a b = a) a + b add(10 5) // => 15 get(hash key) return pair[1
if pair[0
== key for pair in hash hash = (one 1) (two 2) (three 3) get(hash two) // => 2 get(hash three) // => 3 get(hash something) // => null
3. 内建函数// 提取颜色分量red(#c00)// => 204red(#000 255)// => #f00
4. 插值// 属性插值vendor(prop args) -webkit-{prop args -moz-{prop args {prop argsborder-radius() vendor('border-radius' arguments)box-shadow() vendor('box-shadow' arguments)button border-radius 1px 2px / 3px 4px // Yields: button { -webkit-border-radius: 1px 2px / 3px 4px; -moz-border-radius: 1px 2px / 3px 4px; border-radius: 1px 2px / 3px 4px; // 选择器插值 table for row in 1 2 3 4 5 tr:nth-child({row) height: 10px * row // Yields: table tr:nth-child(1) { height: 10px;table tr:nth-child(2) { height: 20px;table tr:nth-child(3) { height: 30px;table tr:nth-child(4) { height: 40px;table tr:nth-child(5) { height: 50px; mySelectors = '#foo#bar.baz'{mySelectors background: #000 Yields:#foo#bar.baz { background: #000; // 对象插值foo = { width: 10px height: 20px '&:hover': { padding: 0 .bar {fooYields:// => .bar {// width: 10px;// height: 20px;// // .bar:hover {// padding: 0;//
5. @EXTENDform input[type=text
padding: 5px border: 1px solid #eee color: #ddd textarea @extends form input[type=text
padding: 10px //Yielding: form input[type=text
textarea { padding: 5px; border: 1px solid #eee; color: #ddd; textarea { padding: 10px;
对于维护一份高质量的CSS代码 , 注释和间隔必不可少以下是一种比较建议的注释和间隔方式 , 可以自行取用 。
/*------------------------------------*\\ #A-SECTION*------------------------------------*/.selector { /*------------------------------------*\\ #ANOTHER-SECTION*------------------------------------*//** * Comment */.another-selector {
除了缩进 , 我们还可以通过在规则集之间自由而明智地使用空格来提供大量信息 。 我们用:
密切相关的规则集之间的一 (1) 条空行 。 松散相关的规则集之间的两 (2) 条空行 。 全新部分之间的五 (5) 行空行 。
// good case/*------------------------------------*\\ #FOO*------------------------------------*/.foo { .foo__bar { .foo--baz { // bad case.foo { .foo__bar { .foo--baz {
同理 , 在html结构中 , 也可以使用同样的规则 。
除了以上这些 , 还有众多的规范和优化可以继续探索 , 如选择器性能 , CSS嵌套 , 有兴趣的读者可以继续探索
- 小米科技|不聊性能只谈拍照!新旗舰反向升级成潮流,拍照手机如何选?
- 搜索引擎|淘宝运营系统出台春节打烊功能,淘宝运营商家该如何选择?
- 小米科技|RTX3060的性能到底如何?相比RTX2060提升有多大?
- 小米 11 Ultra 内测 NFC“读写勿扰”与“解锁后使用”功能
- 物联网|?内容创作者:要明白文章首先是写给推荐系统看的!
- 市值超 1.7 万亿的Netflix是如何做决策的?
- javascript|Web前端培训:什么是 MEAN Stack?
- QQ音乐的2021专辑盘点,是如何征服资深乐迷的
- 外国友人广西写春联、剪纸体验中国传统年味
- 外国友人广西写春联、剪纸 体验中国传统年味