发布网友
共1个回答
热心网友
background是一个简写的声明,它包括background-color、background-image、background-position等多个声明,有些声明的属性必须成对出现才生效,例如你这里的background:#b2f511 0 50%;之所以失效,是因为后面的0 50%属性只有当background-image存在时才有意义。追问是说即使这个属性的父属性有background-image存在,也不成,必须明确的在这个属性块中再写一遍,合并的background中的50%才会有效是么?
ps:像你说的这种成对出现才生效的特点,在哪里能看到相关说明呢?要不是你跟我讲了这个,我都不知道在哪里才能查到~
追答CSS中的简写声明很多,简写的好处不言而喻,敲代码更省力了,而且CSS文件更小了,但简写不是毫无规律的,不同的简写声明有特定的规范。
1. 有的简写声明你可以只写1个属性值,例如:
margin声明,它是margin-top、margin-right、margin-bottom 和 margin-left四个声明的简写声明,当只写一个属性时,例如margin:10px 那么,上、右、下、左四个外边距声明公用这个属性值。
2. 但是有的简写声明要求至少写2个属性值,或者对属性值的前后顺序有明确规定,否则就会出错,导致整条声明作废,例如:
font声明,它可以一次性定义字体的6个属性(font-style、font-variant、font-weight、font-size/line-height 和 font-family),这6个属性不一定要全部定义,但 font-size 和 font-family 这两个属性是必不可少的,否则整条 font 声明就会无效。
相关的知识你可以在W3C的网站上找到,再推荐一本书给你,《CSS那些事儿》,第一章第1节对CSS简写有着详细介绍。