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嵌套 , 有兴趣的读者可以继续探索
- 创投圈|抖音小店无货源适合新手小白么?如何精细化运营?新手小白看来
- 社交|腾讯视频为IP编写「价值算法」
- 松下|淘宝店铺信誉分等级如何提升?
- PHP|如何降低用户关注的非必要页面的权重传递?
- 量子纠缠存在于任何维度空间?人类如何逃出三维空间变成“神”?
- 显卡|如何组装旗舰游戏电脑?这里有你想要的答案
- 火星和地球交换位置会如何?火星会出现生命吗?答案没你想得简单
- 快手视频|视频号和抖音快手的差异化在哪里呢?你应该如何选择适合你的平台
- Java|干翻小米,红米又出超大杯旗舰,120W+2K直屏+双旗舰芯
- 百度地图|Java程序员应知应会之Maven和Gradle的区别
