css - 这种零碎的重复样式该怎样写最优~
问题描述
问题解答
回答1:没有必要对一个个的零散的重复属性纠结,而应该把重心放到可重用的模块上。不然你会越来越无法自拔,题目中开头那段代码我觉得就是最好的
回答2:可以利用js
回答3:可以花个10分钟了解一下sass
回答4:看公共代码的代码量 和 功能
假如你有3个元素
.demo1{position: absolute;border: 1px solid #000; } .demo2{position: absolute;border: 2px solid #f55; } .demo3{position: absolute;border: 3px solid #f30; }
它们都有一个公共的postion:absolute;然后你提取出来单独写
.demo1,.demo2,.demo3{position: absolute; }
可以看出,这样毫无意义,就一条代码,提不提出来都无所谓。。最多增强一点微不足道的可读性
但是如果是一大串功能性代码,比如清除浮动,那么肯定要提取出来方便复用,比如SASS的做法:
%clearfix { *zoom: 1; &:before, &:after {display: table;content: ’’; } &:after {clear: both;overflow: hidden; }}
那么随便你再哪里调用它,比如
.demo1{@extend %clearfix;.....其他代码}.nav{@extend %clearfix;......其他代码}sub-nav{@extend %clearfix;......其他代码}最后都会自动合并为.demo1,.nav,.sub-nav{清除浮动公共代码}
其实这和JS的function一样,大量复用的自然做成插件,单独一句console.log(XXX),虽然也到处写,难道你还需要给它做成个插件么?直接写就行了,不用纠结
相关文章:
1. node.js - nodejs debug问题2. python - flask post提交timestamp不能作为参数,这是为什么?3. spring-mvc - spring-session-redis HttpSessionListener失效4. 在windows下安装docker Toolbox 启动Docker Quickstart Terminal 失败!5. 百度地图api - Android 百度地图 集成了定位,导航 相互的jar包有冲突?6. node.js - express框架,设置浏览器从缓存中读取静态文件,只有js从缓存中读取了,css还有一些图片为何没有从缓存中读取?7. 如何解决Centos下Docker服务启动无响应,且输入docker命令无响应?8. 做Redis集群的时候,可不可以将Master实例和Slave实例放在一个主机当中?9. javascript - 如何获取未来元素的父元素在页面中所有相同元素中是第几个?10. mysql - 一个sql的问题

网公网安备