CSS中border:none和border:0的区别

el/2024/2/25 23:27:34

原文链接https://segmentfault.com/q/1010000000694683/a-1020000001818777 感谢原作! 

要解释区别,首先得先介绍一下border这个属性。

border是一个简写属性。可以设置如下属性

  • border-width
  • border-style
  • border-color

平时写的时候不用写齐三个属性,写其中一两个也是允许的,比如

border: 1px solid;

为什么这样是可行的呢,因为这样写,浏览器会设置这个缺少属性的默认值。过程等价于(伪代码)

border-width: 1px;
border-style: solid;
border-color: value of color; /* `border-color`默认取该元素的`color`属性的值 */

同理border: 0;等价于(伪代码)

border-width: 0;
border-style: none; // `border-style`默认值为`none`
border-color: value of color;

border: none;等价于(伪代码)

border-width: medium; // `border-width`默认值为`medium`,具体大小根据浏览器的默认样式而定
border-style: none;
border-color: value of color

所以以下代码

border-width: 1px;
border: solid;

等价于

border-width: 1px;
border-width: medium; /* default */
border-style: solid;
border-color: value of color; /* default */

以上几个例子应该可以解释清楚这两个写法的区别了吧。

CSS里类似的属性还有一些,比如background,font等,在写的时候应该注意,简写属性会覆盖前面单个定义的属性值。



http://www.ngui.cc/el/4893683.html

相关文章

简单介绍浏览器端的几种存储技术

这个问题经常会被问到,在这里简单总结一下~ 1、Cookie cookie是什么:cookie是指存储在用户本地终端上的数据,同时它是与具体的web页面或者站点相关的。cookie数据会自动在web浏览器和web服务器之间传输,也就是说HTTP请求发送时&…

关于HTML中scr与href的区别

一、区别 src用于替换当前元素&#xff0c;而href用于在当前文档和引用资源之间确立联系。 二、关于src 例&#xff1a;<script src "test4.js"></script> src是source的缩写&#xff0c;指向外部资源的位置&#xff0c;指向的内容将会嵌入到文档中…

概念区分:JavaScript中的global对象,window对象以及document对象

1、global对象&#xff08;全局对象&#xff09; 《JS高级程序设计》中谈到&#xff0c;global对象可以说是ECMAScript中对特别的一个对象了&#xff0c;因为不管你从什么角度上看&#xff0c;这个对象都是不存在的。从某种意义上讲&#xff0c;它是一个终极的“兜底儿对象”&…

【C++】拷贝构造函数之浅复制与深复制

拷贝构造函数之浅复制与深复制 拷贝构造函数分为默认拷贝构造函数和自定义拷贝构造函数&#xff0c;默认拷贝构造函数是编译器自动为类对象创建的构造函数&#xff0c;而自定义拷贝构造函数则是根据自己需要创建的函数 特性 默认拷贝构造函数&#xff1a;简单地将参数对象的…

【C++】编程小结① -- new和delete

new 和 delete 使用的疏忽 1.谨记格式&#xff1a;指针所指对象数据类型* 变量名 new 数据类型&#xff08;初始化变量值,可省略&#xff09;&#xff1b; int* val new int;//val 指向一个没有初始化的int型对象&#xff08;int是内置数据类型&#xff0c;不会初始化&#…

【C++】编程小结②-- 字符串定义变量

关于字符串 如果要将字符一个个赋值进一个字符数组中并最后要用字符串的形式输出整个字符串&#xff0c;则需要手动在最后加入“\0”&#xff0c;不然编译器将读取不到结尾导致意想不到的后果。 定义变量的位置问题 c里允许在for循环里定义变量&#xff0c;但这是有局限性的。…

【C++】指向指针的指针int**的深复制的实现

实现指向指针的指针的深复制 如编写一个构造函数初始化一个矩阵。矩阵元素用一个二维数组来表示。 //定义了一个表示矩阵的类 class Matrix { public:Matrix(string name, int height, int width, int** element);~Matrix(); private:string name;int height;int width;int** …

【C++】编程小结③-- string 宏

关于string的“”号的使用 1.可以是两个string对象相加 #include<string> string s1 "abc"; string s2 "efg"; string s3 s1 s2; 2.和字符串字面值连接 当进行string对象和字符串字面值混合连接操作时&#xff0c;操作符的左右操作数必须至少…

【C++】Digest of 《effective C++》--1

《effective C》阅读笔记01 size_t是c计算个数时使用的某种不带正负号&#xff08;unsigned&#xff09;类型。它也是vector&#xff0c;deque和string内的operator[]函数接受的参数类型。分清楚声明式和定义式&#xff0c;对对象而言&#xff0c;定义式是编译器为此对象拨发内…

什么事情,都要去试一试啊

广州&#xff0c;下了一个月的雨&#xff0c;还在持续着超过一个月的阴天。 前段时间经历过一个心情的低谷。感觉自己真的变成了一个抑郁症患者&#xff0c;不想吃东西&#xff0c;不想做事情&#xff0c;对什么都提不起兴趣。那个时候的自己&#xff0c;可能受到各种外界的影…