当前位置: 首页 > 前端技术 > 正文

一个border引发的血案

如果你要用CSS去表达元素没有边框,你会怎么表达?
是border:0呢?还是border:none呢?
我听过很多人推荐使用border:none,因为其理由是客户端的渲染。
乍听之下会觉得:嗯,有道理,又学到东西了呵……
其实,很多时候,代码是死的,没有绝对的好与坏!
在相对论面前,神马都是浮云……

要想明白哪种写法最适合你当前的环境,那么就必须先了解这两种写法的含义及优缺点:

一、border:0
含义:它代表着边框:大小为0,在浏览器解析后的结果是没有边框
优点1:在写的时候,少写三个字母,这代表在写代码时,这种写法的效率更高
优点2:比另外一种写法少了三个字节,这代表它在体积上更节约了,减低了服务端的负担
缺点:浏览器在解析它的时候,会认为是(边框:其它的默认渲染依然存在,比如solid?比如red?仅是大小为0)

二、border:none
含义:它代表着边框:没有,在浏览器解析后的结果,未必是所有元素都没有边框,试试input如何?
优点1:浏览器在解析它的时候,会认为是(边框:什么也没有,不渲染任何样式),不同于border:0,它毕竟还是有渲染的,但border:none是彻底无视,所以当浏览器在看它border:none时,就选择了路过……!
缺点:请参考border:0的优点

那么读到了这里,你会不会这样理解?
border:0是为了服务端而服务的,它算是减轻了服务器的压力
border:none是为了客户端而服务的,它算是减轻了浏览器的压力

那么,你现在决定了选择哪种写法?
我个人是无论大小网站,基本都选择border:0的
因为就网站而言,我觉得服务器的压力大于浏览器,因为服务器只有一个,而浏览器,有N个……
如果你的是大网站,你的服务器有多牛?千万别小看一句写法少了三个字节,千万别认为是”三个字节而已”
反之,如果是小网站,你的代码要有多复杂,才会让浏览器负荷到造成你浏览产生困扰的地步?从而必须要选择border:none去优化?
或许你不认同这种观点,那么我们换一种观点?用一些小学知识去理解怎么样?

OK!
border:0有两个优点;border:none只有一个优点;
二大于一,YES!
border:0赢了!Yeah~
PS:
本文要表达的并不是它们的写法到底哪种更正确
也未必是要表达它们哪种才更适合你当前的网页
而是希望各位朋友在写代码时,多转动一下脑筋,去发掘、去理解、去想象……
千万别人云亦云,没有调查也就没有发言权;
千万不要读死书,别人教你啥你就认为是啥!

一个border引发的血案:等您来吐槽!