[css 揭秘]:CSS编码技巧
CSS编码技巧
我的github地址:https://github.com/FannieGirl/ifannie
喜欢的给我一个星吧
尽量减少代码重复
- 尽量减少改动时需要编辑的地方
- 当某些值相互依赖时,应该把它们的相互关系用代码表示出来
- 代码易维护 VS 代码量少
- currentColor —— CSS有史以来第一个变量
- inherit可以用在任何CSS属性中,而且它总是绑定到父元素的计算值
关于响应式网页设计
- 每个媒体查询都会增加成本
- 媒体查询的端点不应该由具体设备来决定
建议:
使用百分比长度取代固定长度。如果实在做不到这一点,也应该尝试使用与视口相关的单位(vw、vh、vmin 和 vmax),他们的值解析为宽度或高度的百分比。
当你需要在较大分辨率下得到固定宽度时,使用max-width而不是width,因为它可以适应较小的分辨率,而无需使用媒体查询。
不要忘记为替换元素(比如img、object、video、iframe等)设置一个max-width,值为100%。
加入北京图片需要完整地铺满一个容器,不管容器的尺寸如何变化,background-size:cover这个属性都可以做到。但是,我们也要时刻牢记——带宽并不是无限的,因此在移动网页中通过CSS把一张大图缩小显示是不太明智的。当图片(或其他元素)以行列式进行布局时,让视口的宽度来决定列的数量。弹性盒布局(即FlexBox)或者display:inline-block加上常规的文本折行行为,都可以实现这一点。
在使用多列文本时,指定column-width(列宽)而不是指定column-count(列数),这样他就可以在较小的屏幕上自动显示为单列布局。
总的来说,我们的思路是尽最大努力实现弹性可伸缩的布局,并在媒体查询的各个端点区间内指定响应的尺寸。
合理使用简写
1.在使用展开式属性的写法时,通常会遇到这样的问题:展开式写法并不会帮助你清空所有相关的其他属性,从而可能会干扰你想要达到的效果。
当然,可以把所有的展开式户型全部设置一遍,但可能会漏掉几个;或者,CSS工作组在未来引入更多的展开式属性。
合理使用简写是一种良好的防卫性编码方式,可以抵御未来的风险。当然,如果我们要明确地去覆盖某个具体的展开式属性并保留其他相关样式,那就需要用展开式属性。
我们应该使用预处理器吗?
如果使用得当,在大型项目中可以让代码更加灵活。但是预处理器也不是完美无缺的:
- CSS的文件体积和复杂度可能会失控
2.调试难度增加 - 预处理器在开发或城中引入了一定程度地延时
- 每次抽象都必然会带来更高的学习成本
5.他们都有自己的bug - 很多受预处理器启发的特性都已经以各种方式融入到原生的CSS中了。
建议是,在每个项目开始时使用纯CSS,只有当代码变得开始无法保持DRY时,才切换到预处理器方案。为了避免可能发生的“依赖”或“滥用”,在引入预处理器的问题上需要冷静的决定,不应该在每个项目一开始时就不懂脑筋顺着惯性来。
css 揭秘的第一章 告诉你整体写css的一些技巧。大方向的指导,这些坑我是一个一个踩过来的。有一种相见恨晚的感觉,不过呢,自己不踩怎么印象深刻,吸取教训呢。后面的章节是细节的css技巧,我很是期待,向css更高级进发,每一个技巧,每一段代码都应该去实践,你能够深刻的去理解吧!
书已到手里,学到一个技巧,就应该记录下来。这些都是自己走过来的路。尽管写的很辣鸡,如果你看到了,非常感谢,尽管来吐槽我吧!跪求虐
我的github地址:https://github.com/FannieGirl/ifannie
喜欢的给我一个星吧
感恩你
[css 揭秘]:CSS编码技巧的更多相关文章
- [css 揭秘]-css coding tips
css 揭秘之css coding tips demo(1) html 代码: <body> <section> <div class="demo1" ...
- [css 揭秘]:CSS揭秘 技巧(三):背景定位
我的github地址:https://github.com/FannieGirl/ifannie 源码都在这上面哦! 喜欢的给我一个星吧 背景定位 问题:很多时候,我们想针对容器某个角对背景图片做便宜 ...
- CSS编码技巧
前面的话 本文将从DRY.currentColor.inherit和合理使用简写这几方面来详细介绍CSS编码技巧 DRY DRY,即don`t repeat yourself,尽量减少代码重复 在软件 ...
- CSS揭秘 技巧(五):条纹背景
条纹背景 https://github.com/FannieGirl/ifannie/问题:条纹背景 在设觉设计中无处不在,我们真的可以用css 创建图案吗? 这一章相对还是比较复杂的哦!一起get. ...
- [css 揭秘]:CSS揭秘 技巧(四):边框内圆角
我的github地址:https://github.com/FannieGirl/ifannie/ 源码都在这上面哦! 喜欢的给我一个星吧 边框内圆角 问题:有时候我们需要一个容器,只在内侧有圆角,而 ...
- [css 揭秘]:CSS揭秘 技巧(二):多重边框
我的github地址:https://github.com/FannieGirl/ifannie/ 源码都在这上面哦! 喜欢的给我一个星吧 多重边框 问题:我们通常希望在css代码层面以更灵活的方式来 ...
- [css 揭秘]:CSS揭秘 技巧(一):半透明边框
我的github地址:https://github.com/FannieGirl/ifannie/ 源码都在上面哦 喜欢的给我一个星吧 半透明边框 css 中的半透明颜色,比如用 rgba() 和 h ...
- [css 揭秘] :CSS揭秘 技巧(五):条纹背景
条纹背景 https://github.com/FannieGirl/ifannie/问题:条纹背景 在设觉设计中无处不在,我们真的可以用css 创建图案吗? 这一章相对还是比较复杂的哦!一起get. ...
- 《CSS揭秘》笔记(一)
前言 我们在现代 CSS 中所面临的挑战已经不在于如何绕过这些转瞬即逝的浏览器 bug.如今的挑战是,在保证 DRY ① .可维护.灵活性.轻量级并且尽可能符合标准的前提下,把我们手中的这些CSS特性 ...
随机推荐
- HighCharts之2D带有Legend的饼图
HighCharts之2D带有Legend的饼图 1.实例源码 PieLegend.html: <!DOCTYPE html> <html> <head> < ...
- 【mongodb系统学习之四】查看mongodb进程
四.查看mongodb进程(可以配合启动和关闭使用): 1).方法一:直接查看mongodb进程是否已经存在(用上面的方式启动后,需要另开一个窗口操作):ps –ef|grep mongodb, 如图 ...
- VxWorks6.6 pcPentium BSP 使用说明(三):设备驱动
本文主要介绍了pcPentium BSP中包含的驱动程序.包含了官方提供的所有驱动程序,除了aic7888Lib--现在已用得很少的一个AIC-7888 SCSI控制器的驱动介绍.建议重点阅读at ...
- TypeError:_12.store.query is not a function
1.错误描述 TypeError:_12.store.query is not a function _SearchMixin.js(第62行 ...
- babel-runtime和babel-polyfill两者区别优缺点
先说两种方式的原理: babel-polyfill 使用场景 Babel 默认只转换新的 JavaScript 语法,而不转换新的 API.例如,Iterator.Generator.Set.Maps ...
- ajax面试题
1.ajax是什么?如何创建一个ajax? ajax并不算是一种新的技术,全称是asynchronous javasript and xml,可以说是已有技术的组合,主要用来实现客户端服务器的异步通信 ...
- 【BZOJ3277】串(后缀自动机)
[BZOJ3277]串(后缀自动机) 题面 BZOJ 题解 广义后缀自动机??? 照着别人的打了一遍.. 相当于每个串都构建一个后缀自动机 构建完一个串之后,直接把当前的last指回root就行了?? ...
- 算法精解:DAG有向无环图
DAG是公认的下一代区块链的标志.本文从算法基础去研究分析DAG算法,以及它是如何运用到区块链中,解决了当前区块链的哪些问题. 关键字:DAG,有向无环图,算法,背包,深度优先搜索,栈,BlockCh ...
- angular中$q.all用法
$q.all是用于执行多个异步任务进行回调,它可以接受一个promise的数组,或是promise的hash(object).任何一个promise失败,都会导致整个任务的失败. 例1:接受一个pro ...
- python条件控制
条件控制 现在我们写这样一个程序:在程序里设定好你的年龄,然后启动程序让用户猜测,用户输入后,根据他的输入提示用户输入的是否正确,如果错误,提示是猜大了还是小了 my_age = 24 user_in ...