//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. 递归迭代vector三种方法实现二路归并排序

    https://mp.csdn.net/mdeditor/84933084# 附链接

  2. SpringBoot1.5.2安装配置--1.5.2版本问题

    简述下java环境 1.安装jdk http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htm ...

  3. vi 中插入当前时间

    声明 笔者最近意外的发现 笔者的个人网站http://tiankonguse.com/ 的很多文章被其它网站转载,但是转载时未声明文章来源或参考自 http://tiankonguse.com/ 网站 ...

  4. Intellij IDEA自定义类模板和方法模板

    以Intellij IDEA 2017.3.5为例 定义类模板 依次打开File->Settings->File and Code Templates->Files, 选择class ...

  5. springboot定时任务,去掉指定日期

    今天用springboot写到一个需求:每周定时发送任务,但是要避开法定节假日. 网上找了些博客看,主要参考了https://www.cnblogs.com/lic309/p/4089633.html ...

  6. disruptor--Introduction

    The best way to understand what the Disruptor is, is to compare it to something well understood and ...

  7. Db - DataAccess

    /* Jonney Create 2013-8-12 */ /*using System.Data.OracleClient;*/ /*using System.Data.SQLite;*/ /*us ...

  8. [转]asp.net5中使用NLog进行日志记录

    本文转自:http://www.cnblogs.com/sguozeng/articles/4861303.html asp.net5中使用NLog进行日志记录 asp.net5中提供了性能强大的日志 ...

  9. Lucene学习之二:Lucene的总体架构

    本文转载自:http://www.cnblogs.com/forfuture1978/archive/2009/12/14/1623596.html Lucene总的来说是: 一个高效的,可扩展的,全 ...

  10. ,SQL语句关键词以及实例

    1.select:功能:查找,语法:select 列名 from 表名(注:可以一次从一个表中查询多个列或者从多个表名中查询资料) 实例:select Name from Table1,返回Table ...