CSS编码技巧

我的github地址:https://github.com/FannieGirl/ifannie

喜欢的给我一个星吧

尽量减少代码重复

  1. 尽量减少改动时需要编辑的地方
  2. 当某些值相互依赖时,应该把它们的相互关系用代码表示出来
  3. 代码易维护 VS 代码量少
  4. currentColor —— CSS有史以来第一个变量
  5. inherit可以用在任何CSS属性中,而且它总是绑定到父元素的计算值

关于响应式网页设计

  1. 每个媒体查询都会增加成本
  2. 媒体查询的端点不应该由具体设备来决定

建议:

  1. 使用百分比长度取代固定长度。如果实在做不到这一点,也应该尝试使用与视口相关的单位(vw、vh、vmin 和 vmax),他们的值解析为宽度或高度的百分比。

  2. 当你需要在较大分辨率下得到固定宽度时,使用max-width而不是width,因为它可以适应较小的分辨率,而无需使用媒体查询。

  3. 不要忘记为替换元素(比如img、object、video、iframe等)设置一个max-width,值为100%。
    加入北京图片需要完整地铺满一个容器,不管容器的尺寸如何变化,background-size:cover这个属性都可以做到。但是,我们也要时刻牢记——带宽并不是无限的,因此在移动网页中通过CSS把一张大图缩小显示是不太明智的。

  4. 当图片(或其他元素)以行列式进行布局时,让视口的宽度来决定列的数量。弹性盒布局(即FlexBox)或者display:inline-block加上常规的文本折行行为,都可以实现这一点。

  5. 在使用多列文本时,指定column-width(列宽)而不是指定column-count(列数),这样他就可以在较小的屏幕上自动显示为单列布局。

  6. 总的来说,我们的思路是尽最大努力实现弹性可伸缩的布局,并在媒体查询的各个端点区间内指定响应的尺寸。

合理使用简写

1.在使用展开式属性的写法时,通常会遇到这样的问题:展开式写法并不会帮助你清空所有相关的其他属性,从而可能会干扰你想要达到的效果。

  1. 当然,可以把所有的展开式户型全部设置一遍,但可能会漏掉几个;或者,CSS工作组在未来引入更多的展开式属性。

  2. 合理使用简写是一种良好的防卫性编码方式,可以抵御未来的风险。当然,如果我们要明确地去覆盖某个具体的展开式属性并保留其他相关样式,那就需要用展开式属性。

我们应该使用预处理器吗?

如果使用得当,在大型项目中可以让代码更加灵活。但是预处理器也不是完美无缺的:

  1. CSS的文件体积和复杂度可能会失控
    2.调试难度增加
  2. 预处理器在开发或城中引入了一定程度地延时
  3. 每次抽象都必然会带来更高的学习成本
    5.他们都有自己的bug
  4. 很多受预处理器启发的特性都已经以各种方式融入到原生的CSS中了。

建议是,在每个项目开始时使用纯CSS,只有当代码变得开始无法保持DRY时,才切换到预处理器方案。为了避免可能发生的“依赖”或“滥用”,在引入预处理器的问题上需要冷静的决定,不应该在每个项目一开始时就不懂脑筋顺着惯性来。

css 揭秘的第一章 告诉你整体写css的一些技巧。大方向的指导,这些坑我是一个一个踩过来的。有一种相见恨晚的感觉,不过呢,自己不踩怎么印象深刻,吸取教训呢。后面的章节是细节的css技巧,我很是期待,向css更高级进发,每一个技巧,每一段代码都应该去实践,你能够深刻的去理解吧!

书已到手里,学到一个技巧,就应该记录下来。这些都是自己走过来的路。尽管写的很辣鸡,如果你看到了,非常感谢,尽管来吐槽我吧!跪求虐

我的github地址:https://github.com/FannieGirl/ifannie

喜欢的给我一个星吧

感恩你

[css 揭秘]:CSS编码技巧的更多相关文章

  1. [css 揭秘]-css coding tips

    css 揭秘之css coding tips demo(1) html 代码: <body> <section> <div class="demo1" ...

  2. [css 揭秘]:CSS揭秘 技巧(三):背景定位

    我的github地址:https://github.com/FannieGirl/ifannie 源码都在这上面哦! 喜欢的给我一个星吧 背景定位 问题:很多时候,我们想针对容器某个角对背景图片做便宜 ...

  3. CSS编码技巧

    前面的话 本文将从DRY.currentColor.inherit和合理使用简写这几方面来详细介绍CSS编码技巧 DRY DRY,即don`t repeat yourself,尽量减少代码重复 在软件 ...

  4. CSS揭秘 技巧(五):条纹背景

    条纹背景 https://github.com/FannieGirl/ifannie/问题:条纹背景 在设觉设计中无处不在,我们真的可以用css 创建图案吗? 这一章相对还是比较复杂的哦!一起get. ...

  5. [css 揭秘]:CSS揭秘 技巧(四):边框内圆角

    我的github地址:https://github.com/FannieGirl/ifannie/ 源码都在这上面哦! 喜欢的给我一个星吧 边框内圆角 问题:有时候我们需要一个容器,只在内侧有圆角,而 ...

  6. [css 揭秘]:CSS揭秘 技巧(二):多重边框

    我的github地址:https://github.com/FannieGirl/ifannie/ 源码都在这上面哦! 喜欢的给我一个星吧 多重边框 问题:我们通常希望在css代码层面以更灵活的方式来 ...

  7. [css 揭秘]:CSS揭秘 技巧(一):半透明边框

    我的github地址:https://github.com/FannieGirl/ifannie/ 源码都在上面哦 喜欢的给我一个星吧 半透明边框 css 中的半透明颜色,比如用 rgba() 和 h ...

  8. [css 揭秘] :CSS揭秘 技巧(五):条纹背景

    条纹背景 https://github.com/FannieGirl/ifannie/问题:条纹背景 在设觉设计中无处不在,我们真的可以用css 创建图案吗? 这一章相对还是比较复杂的哦!一起get. ...

  9. 《CSS揭秘》笔记(一)

    前言 我们在现代 CSS 中所面临的挑战已经不在于如何绕过这些转瞬即逝的浏览器 bug.如今的挑战是,在保证 DRY ① .可维护.灵活性.轻量级并且尽可能符合标准的前提下,把我们手中的这些CSS特性 ...

随机推荐

  1. 嵌入式Linux基于framebuffer的jpeg格式本地LCD屏显示

    在基于Linux的视频监控采集系统中,摄像头采集到的一帧视频图像数据一般都是经过硬件自动压缩成jpeg格式的,然后再保存到摄像头设备的缓冲区.如果要把采集到的jpeg格式显示在本地LCD屏上,由于我们 ...

  2. linux中mysql命令方式备份数据的问题

    这几天公司新出了个组件化的项目,里面需要用到mysql数据库相关的技术,由于之前一直用的mongodb,所以mysql几乎忘光了,于是只能在linux虚拟机中重新开始学习. 基本的增删改查还好,但是在 ...

  3. W: 无法下载 bzip2:/var/lib/apt/lists/partial/extras.ubuntu.com_ubuntu_dists_trusty_main_source_Sources

    1 错误描述 youhaidong@youhaidong:~$ cd 下载 youhaidong@youhaidong:~/下载$ sudo apt-get update 忽略 http://cn.a ...

  4. studio设置File Templates

    从项目的整体风格考虑,对所有类要进行必要的说明,就注释说明来说首先需要说明是作者,文件创建时间,业务功能说明,这几项是基本的内容,而添加这些说明内容以前可能手动的添加文件标题头,这种做法现在都非常过时 ...

  5. html中的div span和frameset框架标签

    Div和span 1.      div独占一层,由div九不允许有别的. 2.      span标签不是独自占用一行,span一般用来设置字体. 框架标签: 什么是框架标签,就是把一个页面分成很多 ...

  6. Android集成百度地图详细步骤和错误问题

    先看要实现的效果 第一步, 下载SDK,基础配置,百度开发文档很详细,直接附上链接http://lbsyun.baidu.com/index.php?title=androidsdk/guide/cr ...

  7. [ZOJ3435]Ideal Puzzle Bobble

    题面戳我 题意:你现在处于\((1,1,1)\),问可以看见多少个第一卦限的整点. 第一卦限:就是\((x,y,z)\)中\(x,y,z\)均为正 sol 首先L--,W--,H--,然后答案就变成了 ...

  8. Git知识总览(六) Git分支中的远程操作实践

    前几篇博客陆陆续续的讲了好多关于Git操作的内容,本篇博客仍然也不例外,不过本篇博客的主题是关于git的远程操作的.依照之前博客的风格,我们依然依托于LearningGitBranch中的相关内容来探 ...

  9. java支付宝开发-02-手机网站支付

    源码已上传github,欢迎专注:https://github.com/shirayner/alipay-wap 一.基础部分 1.手机网站支付产品介绍 1.1 阅读官方介绍: 手机网站支付产品介绍 ...

  10. SpringBoot初探之Swagger配置

    Swagger是一个用于描述和测试restful接口的工具,只要在定义restful接口时增加一些类和方法的描述注解,通过很简单的配置就可以得到一个展示接口定义页面,也可以在页面上设置参数提交测试接口 ...