//margin 形式语法: [ <length> | <percentage> | auto ]{1,4}
//合法实例:
margin: style /*单值语法 */ 举例: margin: 1em;
margin: vertical horizontal /*二值语法 */ 举例: margin: 5% auto;
margin: top horizontal bottom /*三值语法 */ 举例: margin: 1em auto 2em;
margin: top right bottom left /*四值语法 */ 举例: margin: 2px 1em 0 auto; margin: inherit

上面margin的形式语法中 <length>, <percentage>,auto为基本元素

[],|为组合符号,{1,4}为数量符号

在比如下面的border-width属性值语法:

border-width: [<length> | thin | medium | thick]{1,4}

基本元素可以是

  • 关键字类型

    • auto,solid,bold,red,blue。。。
  • 一般类型
    • 基本类型,比如<length>,<percentage>,<color>。。。
    • 其他复杂类型,比如< 'padding-widht'>可以取<length>基本类型,或者percentage基本类型, <color-stop>
  • 符号(/,)用于分割
  • inherit,initial为两个特殊的基本元素,几乎每一个html元素都可以有这两个值

组合符号-空格

< 'font-size' >  < 'font-family'>
//合法值:
12px arial
//不合法值:
2em
arial 14px

上面由空格连接了两个复杂类型,表示这两个类型必须出现并且顺序也必须是按照语法示例要求的

组合符号-&&

<length>&&<color>
//合法:
green && 1px
10px && red
//非法
purple
10px

上面由&&连接了两个基本类型,他们是必须出现的,但是其顺序是不要求的

组合符号-||

underline || overline || line-through || blink
//表示至少要出现一个,顺序是没有关系的
//合法的:
underline
overline underline
line-through blink overline

上面由||连接了四个关键字类型的值,他们必须出现至少一个,但是其出现顺序没有关系

组合符号-|

<color> | transparent
//由|连接的值表示只能出现一个
//合法值:
orange
transparent
red
#134556
//非法值:
orange transparent

组合符号-[]

bold [ thin || <length> ]
/*[]表示一个作为一个整体来对待*/
//合法: bold thin bold 2em
//非法:
2em bold //原因是空格组合符号表示必须按顺序出现,但是这里顺序颠倒了

数量符号-无

<length>
/*这里没有数量符号修饰,则表示只有一个可以出现*/
/*合法值*/
1em
2px
/*非法*/
1px 2em

数量符号-+

<color-stop> [, <color-stop> ]+
/*+表示前面修饰的值可以出现1次或多次*/
/*合法值*/
#fff , red
blue, green 50%, grey
/*不合法*/
red /*因为+表示至少要出现一次,而这里出现了0次*/

数量符号-?

inset?&&<color>
/*?表示可以出现也可以不出现*/
/*合法*/
inset blue
red /*由于是可选的,所以即使不出现也是符合语法的*/

数量符号-{}

<length>{2,4}
/*{}表示可以出现的次数,最少2次最多4次*/
/*合法值*/
1px 2px
1px 2px 3em
/*非法*/
2px /*因为只出现了1次*/

数量符号-*

<time> [, <time>]*
/*表示可以出现0次或多次*/
/*合法*/
1s
1s, 4ms
1s, 3ms, 2s

数量符号-#

<time>#
/*需要出现1次或多次,中间必须用,都好隔开*/
/*合法*/
2s, 4s
/*不合法*/
2s 4s /*因为他用空格隔开了*/

css属性值语法解读的更多相关文章

  1. JS中使用document.defaultView.getComputedStyle()、currentStyle()方法获取CSS属性值

    在对网页进行调试的过程中,经常会用到js来获取元素的CSS样式,方法有很多很多,现在仅把我经常用的方法总结如: 1. obj.style:这个方法只能JS只能获取写在html标签中的写在style属性 ...

  2. CSS属性值一览

    牢记内联式>嵌入式(嵌入式中设置各种文字字体.大小.位置.颜色.外距.内距最好用选择器)>外部式(外联式)的使用 属性和属性值(点击可展开) font-family(字体) Microso ...

  3. js修改css属性值

    推荐用dom.style.setProperty('属性','属性值'); 例如: $("#id")[0].style.setProperty('margin-top','1px' ...

  4. CSS属性值定义语法中的符号说名

    我们通常看到一个CSS语法,总是有很多符号在其中,这些符号是什么鬼呢,且看下面道来 这些符号可以大致分为2类:分组类与数量类. 1.分组类,就是分成一堆一堆啦: 符号 名称 描述 示例   并置 各部 ...

  5. JS使用getComputedStyle()方法获取CSS属性值

    在对网页进行调试的过程中,经常会用到js来获取元素的CSS样式,方法有很多很多,现在仅把我经常用的方法总结如下: 1. obj.style:这个方法只能JS只能获取写在html标签中的写在style属 ...

  6. javascript之复习(css属性值的计算)

    js取div的宽高咋办,css有content-box,border-box,padding-box,表现又不一样.好在有个offsetWidth, <style type="text ...

  7. calc() 计算CSS属性值

    calc()是css3的一个新增的功能,用来指定元素的长度.比如说,你可以使用calc()给元素的border.margin.pading.font-size和width等属性设置动态值.calc() ...

  8. JS 获取CSS属性值

    obj: 元素对象 attribute: 属性 返回值:该对象这个属性的值 function getDefaultStyle(obj,attribute){ // 返回最终样式函数,兼容IE和DOM, ...

  9. 在不同的浏览器下FORM及它的小伙伴们默认样式的CSS属性值是不全然一致

    我们一般在定义CSS样式的时候都须要定义去掉HTML标签默认样式的CSS,原因是在不同的浏览器以下它们的表现出来的默认样式不全然一致,我们要保证在不同的浏览器下它们能正常显示出我们想要达到的预期效果, ...

随机推荐

  1. 引入background和background-size不显示图片

    .bgLeft { position: absolute; left: -95px; background: url("../images/logo_1.png") left to ...

  2. VUE 监听局部滚动 设置ICON的位置跟随

    效果图如下: 目的: 为了让 + 号与 - 号跟随在当前 tr 的前边 第一步: 当tr指针经过时获取tr的相对位置 HTML JS 第二步:给滚动的div元素添加滚动事件获取滚动的高度 最后:设置I ...

  3. 设置开机自动运行vncserver

    a. 在/etc/rc.d/rc.local文件中加入下面行   /etc/init.d/vncserver startb. 编辑/etc/sysconfig/vncservers   VNCSERV ...

  4. 关于ASP.NET MVC+Repository+Service架构的一些思考

    看了一些ASP.NET MVC开源项目后的一些想法,关于ASP.NET MVC+Repository+Service架构的一些思考 最近在学习ASP.NET MVC 2.0的一些开源项目,发现这些项目 ...

  5. (转)MySQL 日志组提交

    原文:https://jin-yang.github.io/post/mysql-group-commit.html 组提交 (group commit) 是为了优化写日志时的刷磁盘问题,从最初只支持 ...

  6. Delphi设置表格样式

    //设置表格样式wordDoc.Tables.Item(1).Borders.Item(Word.WdBorderType.wdBorderLeft).LineStyle = Word.WdLineS ...

  7. java websocket client

    websocket是H5新推出的协议,一般用于前端,但是在实际项目中我们需要用java代码来获取一些设备的实时运行数据,在后台处理后推送的前台界面,为了保证实时性,我们需要用到websocket协议, ...

  8. JDBC(4)-Result结果集

    1.Result结果集的引入 当我们查询数据库时,返回的是一个二维的结果集,我们这时候需要使用ResultSet来遍历结果集,获取每一行的数据. 2.使用Result遍历查询结果 boolean ne ...

  9. HTML基础笔记

    html基础 (1)什么是html?超文本标记语言 用于开发网页的语言,由浏览器解释执行 (2)html文件的基本结构 <html> <head> <title>& ...

  10. c#异步编程async await

    可以代替协程了 但是需要.net4 版本 unity2017以上版本可以用了 再也可以不用蛋疼的没有返回值的协程了 //异步编程,和Task一起用 async void TestAsync(){ // ...