CSS特性简写梳理

2021-03-11 14:40 jianzhan
《写出高效率干净整洁的css的13条标准》里边有提到要尽可能简写css。实际如何简写呢,总结以下:
盒子的內外边距(margin和padding)
以margin为例,padding同样。盒子有左右上下4个方位,每一个方位都有个外边距:
演试编码

拷贝编码
编码以下:

margin-top:1px;
margin-right:1px;
margin-botton:1px;
margin-left:1px;

这4个值能够缩写到1起:
演试编码

拷贝编码
编码以下:

margin:1px1px1px1px;

缩写的次序是上->右->下->左。顺时针的方位。相对性的边的值同样,则能够省掉:
演试编码

拷贝编码
编码以下:

margin:1px;//4个方位的边距同样,等同于于margin:1px1px1px1px;
margin:1px2px;//左右边距都为1px,上下边距均为2px,等同于于margin:1px2px1px2px
margin:1px2px3px;//右侧距和左侧距同样,等同于于margin:1px2px3px2px;
margin:1px2px1px3px;//留意,这里尽管左右边距都为1px,可是这里不可以缩写。

边框(border)
border是个较为灵便的特性,它有border-width、border-style、border-color3个子特性。
演试编码

拷贝编码
编码以下:

border-width:数据+企业;
border-style:none||hidden||dashed||dotted||double||groove||inset||outset||ridge||solid;
border-color:色调;

它能够依照width、style和color的次序简写
演试编码

拷贝编码
编码以下:

border:5pxsolid#369;

有的情况下,border能够写的更简易些,一些值能够省掉,可是请留意哪些是务必的,你还可以检测1下:
演试编码

拷贝编码
编码以下:

border:groovered;//大伙儿猜猜这个边框的宽度是是多少?
border:solid;//这会是甚么模样?
border:5px;//这样能够吗?
border:5pxred;//这样能够吗??
border:red;//这样能够吗???

根据上面的编码能够掌握到,border默认设置的宽度是3px,默认设置的颜色是black——黑色。默认设置的色调是该标准中的color特性的值,而color默认设置是黑色的。border的缩写中border-style是务必的。
另外,还能够对每条边选用缩写:
演试编码

拷贝编码
编码以下:

border-top:4pxsolid#333;
border-right:3pxsolid#666;
border-bottom:3pxsolid#666;
border-left:4pxsolid#333;

还能够对每一个特性选用缩写:
演试编码

拷贝编码
编码以下:

border-width:1px2px3px;//数最多能用4个值,缩写标准相近盒子尺寸的缩写,下同
border-style:soliddasheddottedgroove;
border-color:redbluewhiteblack;

色调缩写(color)
颜色的缩写最简易,在颜色值用16进制的情况下,假如每种色调的值同样,便可以写成1个:
演试编码

拷贝编码
编码以下:

color:#113366

能够简写为
演试编码

拷贝编码
编码以下:

color:#136

全部用到16进制颜色值的地区都可以以应用简写,例如background-color、border-color、text-shadow、box-shadow等。可是表明下,许多文章内容针对这类缩写不好于提升访问器3D渲染高效率。
outline
outline相近border,不一样的是border会危害盒实体模型,而outline不容易。
演试编码

拷贝编码
编码以下:

outline-width:数据+企业;
outline-style:none||dashed||dotted||double||groove||inset||outset||ridge||solid;
outline-color:色调;

能够缩写为:
演试编码

拷贝编码
编码以下:

outline:1pxsolidred;

一样,outline的简写中,outline-style也是务必的,此外两个值则可选,默认设置值和border同样。
情况(background)
background是最常见的简写之1,它包括下列特性:
演试编码

拷贝编码
编码以下:

background-color:color||#hex||RGB(%||0⑵55)||RGBa;
background-image:url();
background-repeat:repeat||repeat-x||repeat-y||no-repeat;
background-position:XY||(top||bottom||center)(left||right||center);
background-attachment:scroll||fixed;

background的简写能够大大的提升css的高效率
演试编码

拷贝编码
编码以下:

background:#fffurl(img.png)no-repeat00;
<strong>background的简写也是有些默认设置值</strong>:

演试编码

拷贝编码
编码以下:

background:transparentnonerepeatscrolltopleft;
background特性的值不容易承继,你能够只申明在其中的1个,其它的值会被运用默认设置的。

字体样式(font)
font简写也是应用数最多的1个,它也是撰写高效率的CSS的方式之1。
font包括下列特性
演试编码

拷贝编码
编码以下:

font-style:normal||italic||oblique;
font-variant:normal||small-caps;
font-weight:normal||bold||bolder||||lighter||(100⑼00);
font-size:(number+unit)||(xx-small-xx-large);
line-height:normal||(number+unit);
font-family:name,"morenames";

font的各个特性也都有默认设置值,记牢这些默认设置值相对性来讲较为关键:
演试编码

拷贝编码
编码以下:

font-style:normal;
font-variant:normal;
font-weight:normal;
font-size:inherit;
line-height:normal;
font-family:inherit;

客观事实上,font的简写是这些简写中最必须当心的1个,稍有粗心大意就会导致1些出乎意料的不良影响,因此,许多人其实不赞同应用font缩写。
但是这里恰好有个小手册,坚信会让你更好的了解font的简写:
目录款式
将会大伙儿用的数最多的1条有关目录的特性便是:
演试编码
list-style:none
它会消除全部默认设置的目录款式,例如数据或圆点。
list-style也是有3个特性
演试编码

拷贝编码
编码以下:

list-style-type:none||disc||circle||square||decimal||lower-alpha||upper-alpha||lower-roman||upper-roman
list-style-position:inside||outside||inherit
list-style-image:(url)||none||inherit

list-style的默认设置特性以下
演试编码
list-style:discoutsidenone
必须留意的是,假如list-tyle中界定了照片,那末照片的优先选择级要比list-style-type高,例如:
演试编码
list-style:circleinsideurl(../img.gif)
这个事例中,假如img.gif存在,则不容易显示信息前面设定的circle标记。
border-radius(圆角半径)
border-radius是css3中新添加的特性,用来完成圆角边框。这个特性现阶段不太好的1点儿是,各个访问器对它的适用不一样,IE尚不适用,Gecko(firefox)和webkit(safari/chrome)等需各自应用独享前缀-moz-和-webkit-。更令人纠结的是,假如单独角的border-radius特性的写法在这两个访问器的差别更大,你要撰写很多的独享特性:
演试编码

拷贝编码
编码以下:

-moz-border-radius-bottomleft:6px;
-moz-border-radius-topleft:6px;
-moz-border-radius-topright:6px;
-webkit-border-bottom-left-radius:6px;
-webkit-border-top-left-radius:6px;
-webkit-border-top-right-radius:6px;
border-bottom-left-radius:6px;
border-top-left-radius:6px;
border-top-right-radius:6px;

是否你早已看的头晕眼花了?这只是要完成左上角并不是圆角,其它3个角全是圆角的状况。因此针对border-radius提议应用缩写:
演试编码

拷贝编码
编码以下:

-moz-border-radius:06px6px;
-webkit-border-radius:06px6px;
border-radius:06px6px;