原理

  1. 在css中如果值为0,可以省略单位。
  2. 在css应用场景中,有可能是多端多人维护。即可能维护的人有A及B及C…,应用场景中有电脑端及手机端及小程序及打印机之类的。

结论

个人认为不要省略单位,不要留下后续维护的坑。多端多设备时,最好当时就想好用什么单位更合适,如果想不到,用rem或px也行,反正实际表现是一样的,后续别人维护,自然会去改单位。

说明

  1. 从程序员的角度来看css单位中, 0 == null == none == false == 不写值 ,这意味着如果指定为0代表没有或无。以边框举例,如果指定边框宽度为0代表没有边框;但如果指定一个边框宽度为0px,那么将创建一个0px的边框。两者表现一致,但含义不一致,但一般默认的css样式就是无,之所以要特意改为零值,往往是因为引入的第三方代码或全局代码中,设置了一个不为零值的css样式。有单位时更容易让人理解为当前需求要求为无边框但用了0px来实现该效果,后续还有可能要动这个边框。
  2. 谷歌浏览器调试中,如果有单位,可以用向上键及向下键细调高度。如果是0,那么就不能直接细调了。
  3. 当前css样式的人大概是你自己,并且此时你大概知道后续的需求或改进的大概的单位数量级。所以你写了单位,别人后续可以直接在你当前的单位上细调,而不用再去想该用什么单位。也就是说,在你写自己负责的代码时,往往没人比你更懂对应的业务,更利于维护。并且,后面如果你忘记了,也更容易想起。
  4. 省略单位更容易出错,因为以后的更改可能会意外地忽略该单位。
  5. 省略单位不太符合文档中其他地方的非零元素,因为可省的一般只限于长度,时间、角度等等有可能就不可以省略。不省略单位,更容易让人知道要改动的值。同时代码更规范,别人不用特意去记长度的零值可以省略单位这一个小知识细节。

来源

  1. CSS 单位;
  2. css长度单位讲解 (超详细);
  3. 当在CSS中指定0值时,应该明确标记单位还是省略?;
  4. 遇到 0px 需不需要写单位 px ?;
  5. 解决CSS3transition-delay属性默认值0不带单位失效的问题;
  6. 不要省略CSS中零值的单位!;

2021-10-25 css中零值0后面是否要省略单位的更多相关文章

  1. cordova 导致css中绝对定位top:0会被顶到视图之外

    IOS7+ webview全屏导致状态栏悬浮在页面上 解决方案:打开 ios项目/classes/MainViewController.m,修改viewWillAppear方法 - (void)vie ...

  2. float 浮点数与零值0比较大小

    float x: 千万不要写x==0; 写出float x 与“零值”比较的if语句——一道面试题分析 写出float  x 与“零值”比较的if语句 请写出 float  x 与“零值”比较的 if ...

  3. float 浮点数与零值0比较大小 ZZ

    float x: 千万不要写x==0; 写出float x 与“零值”比较的if语句——一道面试题分析 写出float  x 与“零值”比较的if语句 请写出 float  x 与“零值”比较的 if ...

  4. CSS中设置margin:0 auto; 水平居中无效的原因分析

    很多初学制作网页的朋友,可能会遇到的一个常见问题,就是在CSS中加了margin:0 auto;却没有效果,不能居中的问题,margin:0 auto;的意思就是:上下边界为0,左右根据宽度自适应,其 ...

  5. 关于CSS中text-decoration值没有替换而是累积的疑问

    做了个实验: <!DOCTYPE html> <html> <head> <title>BaiDuTest.html</title> < ...

  6. 山东理工大学第七届ACM校赛-最大收益问题 分类: 比赛 2015-06-26 10:25 51人阅读 评论(0) 收藏

    最大收益问题 Time Limit: 2000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 铁牌狗最近迷上了一款游戏,但铁牌狗实在是太笨了,他还是要请求你的帮助. 有 ...

  7. css中属性值继承小解

    继承:html元素可以从父元素那里继承一部分css属性,即使当前元素没有定义该属性. 1.css可以和不可以继承的属性 不可继承的:display.margin.border.padding.back ...

  8. 日常Java 2021/10/25

    ArrayList存储数字 import java.util.ArrayList; public class Arr_test { public static void main(String[] a ...

  9. Digital Roots—HDU1013 2016-05-06 10:25 85人阅读 评论(0) 收藏

    Digital Roots Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  10. css中font-size为0的妙用(消除内联元素间的间隔)

    前言 <div> <input type="text"> <input type="button" value="提交& ...

随机推荐

  1. [转帖]java -D参数设置系统属性无效问题及解决

    https://www.jb51.net/article/271236.htm   这篇文章主要介绍了java -D参数设置系统属性无效问题及解决方案,具有很好的参考价值,希望对大家有所帮助.如有错误 ...

  2. kafka学习之五_多个磁盘的性能验证

    kafka学习之五_多个磁盘的性能验证 背景 周末在家学习kafka 上午验证了grafana+kafka_exporter的监控 下午想着验证一把性能相关. kafka学习之三里面,有成套的脚本. ...

  3. 物理机和虚拟机上CPU睿频的区别

    物理机和虚拟机上CPU睿频的区别 关于睿频 睿频是指当启动一个运行程序后,处理器会自动加速到合适的频率, 而原来的运行速度会提升 10%~20% 以保证程序流畅运行的一种技术. 一般max的睿频不能超 ...

  4. [转帖]Xargs用法详解

    https://www.cnblogs.com/cheyunhua/p/8796433.html 1. 简介 之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要, ...

  5. [转帖]MIPS和ARM授权差异引起的龙芯路线变迁

    https://zhuanlan.zhihu.com/p/99807721 一.MIPS和ARM授权的异同 MIPS授权和ARM授权都分为处理器核授权(Core License)和架构授权(Archi ...

  6. [转帖]使用 Shell 运算进行进制转换 16进制转10进制

    使用 Shell 运算进行进制转换 工作时候常常遇到一些问题,拿到的数字是16进制的,但是运算的时候是10进制的,shell可以很方便的处理这类的进制转换问题,一种情况是使用 Shell 运算把一个数 ...

  7. Intel 第四代志强可扩展SKU

  8. java 调优需要关闭的组建

  9. 基于Spring Cache实现Caffeine、jimDB多级缓存实战

    作者: 京东零售 王震 背景 在早期参与涅槃氛围标签中台项目中,前台要求接口性能999要求50ms以下,通过设计Caffeine.ehcache堆外缓存.jimDB三级缓存,利用内存.堆外.jimDB ...

  10. git有关commit的命令

    2.更改最近一次(本次) commit 的提交信息: 当我们执行 git add . git commit -m "0-0-1" 之后我们发现自己写的提交信息是不符合项目要求的,这 ...