css3总结笔记 http://my.oschina.net/u/2460148/blog/639666
属性选择器
E[attr]只使用属性名,但没有确定任何属性值
E[attr=”value”]指定属性名,并指定了该属性的属性值
E[attr~=”value”]指定属性名,并且具有属性值,此属性值是一个词列表,并且以空格隔开,其中词列表中包含了一个value词,而且等号前面的“〜”不能不写
E[attr^=”value”]指定了属性名,并且有属性值,属性值是以value开头的
E[attr$=”value”]指定了属性名,并且有属性值,而且属性值是以value结束的
E[attr*=”value”]指定了属性名,并且有属性值,而且属值中包含了value
E[attr|=”value”]指定了属性名,并且属性值是value或者以“value-”开头的值(比如说zh-cn)
实例:百度文库;
1 2 3 4 5 |
<span class="hljs-tag"><<span class="hljs-name">style</span>></span><span class="css"><span class="hljs-selector-tag">p</span>{<span class="hljs-attribute">height</span>:<span class="hljs-number">30px</span>; <span class="hljs-attribute">line-height</span>:<span class="hljs-number">30px</span>; <span class="hljs-attribute">font-size</span>:<span class="hljs-number">12px</span>;<span class="hljs-attribute">border</span>:<span class="hljs-number">1px</span> solid <span class="hljs-number">#000</span>;}<span class="hljs-selector-tag">p</span> <span class="hljs-selector-tag">a</span>{<span class="hljs-attribute">background</span>:<span class="hljs-built_in">url</span>(img/w.gif) no-repeat <span class="hljs-number">3px</span> center;<span class="hljs-attribute">padding-left</span>:<span class="hljs-number">20px</span>; <span class="hljs-attribute">display</span>:block;}<span class="hljs-selector-tag">p</span> <span class="hljs-selector-tag">a</span><span class="hljs-selector-attr">[href*=text]</span>{ <span class="hljs-attribute">background-image</span>:<span class="hljs-built_in">url</span>(img/text.gif);}<span class="hljs-selector-tag">p</span> <span class="hljs-selector-tag">a</span><span class="hljs-selector-attr">[href*=pdf]</span>{ <span class="hljs-attribute">background-image</span>:<span class="hljs-built_in">url</span>(img/swf.gif);}<span class="hljs-selector-tag">p</span> <span class="hljs-selector-tag">a</span><span class="hljs-selector-attr">[href*=exl]</span>{ <span class="hljs-attribute">background-image</span>:<span class="hljs-built_in">url</span>(img/x.gif);}</span><span class="hljs-tag"></<span class="hljs-name">style</span>></span><span class="hljs-tag"></<span class="hljs-name">head</span>></span><span class="hljs-tag"><<span class="hljs-name">body</span>></span><span class="hljs-tag"><<span class="hljs-name">p</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"http://www.miaov.com/doc/javascript.html"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span><span class="hljs-tag"></<span class="hljs-name">p</span>></span><span class="hljs-tag"><<span class="hljs-name">p</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"http://www.miaov.com/text/javascript.html"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span><span class="hljs-tag"></<span class="hljs-name">p</span>></span><span class="hljs-tag"><<span class="hljs-name">p</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"http://www.miaov.com/pdf/javascript.html"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span><span class="hljs-tag"></<span class="hljs-name">p</span>></span><span class="hljs-tag"><<span class="hljs-name">p</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"http://www.miaov.com/exl/javascript.html"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span><span class="hljs-tag"></<span class="hljs-name">p</span>></span> |
备注:IE7及以上支持;
结构性伪类
E:nth-child(n) 表示E父元素中的第n个字节点
p:nth-child(odd){background:red}/匹配奇数行/
p:nth-child(even){background:red}/匹配偶数行/
p:nth-child(2n){background:red}
E:nth-last-child(n) 表示E父元素中的第n个字节点,从后向前计算
E:nth-of-type(n) 表示E父元素中的第n个字节点,且类型为E
E:nth-last-of-type(n)表示E父元素中的第n个字节点,且类型为E,从后向前计算
E:empty 表示E元素中没有子节点。注意:子节点包含文本节点
E:first-child 表示E元素中的第一个子节点
E:last-child 表示E元素中的最后一个子节点
E:first-of-type 表示E父元素中的第一个子节点且节点类型是E的
E:last-of-type 表示E父元素中的最后一个子节点且节点类型是E的
E:only-child表示E元素中只有一个子节点。注意:子节点不包含文本节点
E:only-of-type 表示E的父元素中只有一个子节点,且这个唯一的子节点的类型必须是E。注意:子节点不包含文本节点
实例:新浪头部导航
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
<span class="hljs-tag"><<span class="hljs-name">style</span>></span><span class="css"><span class="hljs-selector-class">.list</span>{<span class="hljs-attribute">margin</span>:<span class="hljs-number">0</span>;<span class="hljs-attribute">padding</span>:<span class="hljs-number">0</span>; <span class="hljs-attribute">list-style</span>:none;}<span class="hljs-selector-class">.list</span> <span class="hljs-selector-tag">li</span>{<span class="hljs-attribute">width</span>:<span class="hljs-number">150px</span>;<span class="hljs-attribute">border-right</span>:<span class="hljs-number">1px</span> solid <span class="hljs-number">#000</span>;<span class="hljs-attribute">float</span>:left;}<span class="hljs-selector-class">.list</span> <span class="hljs-selector-tag">li</span><span class="hljs-selector-pseudo">:last-of-type</span>{<span class="hljs-attribute">border</span>:none;}<span class="hljs-selector-class">.list</span> <span class="hljs-selector-tag">a</span>{<span class="hljs-attribute">float</span>:left;<span class="hljs-attribute">width</span>:<span class="hljs-number">40px</span>;<span class="hljs-attribute">margin</span>:<span class="hljs-number">0</span> <span class="hljs-number">5px</span>; <span class="hljs-attribute">font</span>:<span class="hljs-number">12px</span>/<span class="hljs-number">30px</span> <span class="hljs-string">"宋体"</span>; <span class="hljs-attribute">text-align</span>:center;}<span class="hljs-selector-class">.list</span> <span class="hljs-selector-tag">li</span> <span class="hljs-selector-tag">a</span><span class="hljs-selector-pseudo">:nth-of-type(3n+1)</span>{ <span class="hljs-attribute">font-weight</span>:bold;}<span class="hljs-selector-class">.list</span> <span class="hljs-selector-tag">li</span><span class="hljs-selector-pseudo">:nth-child(3)</span> <span class="hljs-selector-tag">a</span><span class="hljs-selector-pseudo">:nth-child(2)</span>{ <span class="hljs-attribute">color</span>:red;}</span><span class="hljs-tag"></<span class="hljs-name">style</span>></span><span class="hljs-tag"></<span class="hljs-name">head</span>></span><span class="hljs-tag"><<span class="hljs-name">body</span>></span><span class="hljs-tag"><<span class="hljs-name">ul</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"list"</span>></span> <span class="hljs-tag"><<span class="hljs-name">li</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"></<span class="hljs-name">li</span>></span> <span class="hljs-tag"><<span class="hljs-name">li</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"></<span class="hljs-name">li</span>></span> <span class="hljs-tag"><<span class="hljs-name">li</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"></<span class="hljs-name">li</span>></span> <span class="hljs-tag"><<span class="hljs-name">li</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"></<span class="hljs-name">li</span>></span> <span class="hljs-tag"><<span class="hljs-name">li</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"></<span class="hljs-name">li</span>></span> <span class="hljs-tag"><<span class="hljs-name">li</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"></<span class="hljs-name">li</span>></span> <span class="hljs-tag"><<span class="hljs-name">li</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"#"</span>></span>测试文字<span class="hljs-tag"></<span class="hljs-name">a</span>></span> <span class="hljs-tag"></<span class="hljs-name">li</span>></span><span class="hljs-tag"></<span class="hljs-name">ul</span>></span> |
其它伪类
E:target 表示当前的URL片段的元素类型,这个元素必须是E
E:disabled 表示不可点击的表单控件
E:enabled 表示可点击的表单控件
E:checked 表示已选中的checkbox或radio
E:first-line 表示E元素中的第一行
E:first-letter 表示E元素中的第一个字符
E::selection表示E元素在用户选中文字时
E::before 生成内容在E元素前
E::after 生成内容在E元素后
E:not(s) 表示E元素不被匹配
E~F表示E元素毗邻的F元素
Content 属性
css3绘制叉号
1 |
<span class="hljs-selector-tag">a</span>{ <span class="hljs-attribute">display</span>: inline-block; <span class="hljs-attribute">width</span>: <span class="hljs-number">20px</span>;<span class="hljs-attribute">height</span>:<span class="hljs-number">5px</span>; <span class="hljs-attribute">background</span>: red;<span class="hljs-attribute">line-height</span>: <span class="hljs-number">0</span>;<span class="hljs-attribute">font-size</span>:<span class="hljs-number">0</span>;<span class="hljs-attribute">vertical-align</span>: middle;<span class="hljs-attribute">-webkit-transform</span>: <span class="hljs-built_in">rotate</span>(45deg) } <span class="hljs-selector-tag">a</span><span class="hljs-selector-pseudo">:after</span>{<span class="hljs-attribute">content</span>:<span class="hljs-string">'/'</span>;<span class="hljs-attribute">display</span>:block;<span class="hljs-attribute">width</span>: <span class="hljs-number">20px</span>;<span class="hljs-attribute">height</span>:<span class="hljs-number">5px</span>; <span class="hljs-attribute">background</span>: red;<span class="hljs-attribute">-webkit-transform</span>: <span class="hljs-built_in">rotate</span>(-90deg);} |
文字
文字阴影
text-shadow:x y blur color, …
参数
x 横向偏移
y 纵向偏移
blur 模糊距离
color 阴影颜色
文本阴影如果加很多层,会很卡很卡很卡
文字阴影应用
最简单用法
1 |
<span class="hljs-selector-tag">text-shadow</span><span class="hljs-selector-pseudo">:2px</span> 2<span class="hljs-selector-tag">px</span> 4<span class="hljs-selector-tag">px</span> <span class="hljs-selector-tag">black</span> |
阴影叠加
1 |
<span class="hljs-selector-tag">text-shadow</span><span class="hljs-selector-pseudo">:2px</span> 2<span class="hljs-selector-tag">px</span> 0<span class="hljs-selector-tag">px</span> <span class="hljs-selector-tag">red</span>, 2<span class="hljs-selector-tag">px</span> 2<span class="hljs-selector-tag">px</span> 4<span class="hljs-selector-tag">px</span> <span class="hljs-selector-tag">green</span>; |
先渲染后面的,再渲染前面的
几个好玩的例子
1 |
<span class="hljs-comment">//层叠:color:red; font-size:100px; font-weight:bold; text-shadow:2px 2px 0px white, 4px 4px 0px red;//光晕:color:white; font-size:100px; text-shadow:0 0 10px #fff, 0 0 20px #fff, 0 0 30px #fff, 0 0 40px #ff00de, 0 0 70px #ff00de, 0 0 80px #ff00de, 0 0 100px #ff00de, 0 0 150px #ff00de;//火焰文字:text-shadow: 0 0 20px #fefcc9, 10px -10px 30px #feec85, -20px -20px 40px #ffae34, 20px -40px 50px #ec760c, -20px -60px 60px #cd4606, 0 -80px 70px #973716, 10px -90px 80px #451b0e; font-family:Verdana, Geneva, sans-serif; font-size:100px; font-weight:bold; color:white;</span> |
文字描边
webkit-text-stroke:宽度 颜色
新增文本功能
Direction 定义文字排列方式(全兼容)
Rtl 从右向左排列
Ltr 从左到右
注意要配合unicode-bidi 一块使用
1 |
<span class="hljs-selector-tag">p</span>{<span class="hljs-attribute">width</span>:<span class="hljs-number">300px</span>;<span class="hljs-attribute">border</span>:<span class="hljs-number">1px</span> solid <span class="hljs-number">#000</span>;<span class="hljs-attribute">font</span>:<span class="hljs-number">14px</span>/<span class="hljs-number">30px</span> <span class="hljs-string">"宋体"</span>;<span class="hljs-attribute">direction</span>:rtl;<span class="hljs-attribute">unicode-bidi</span>:bidi-override;<span class="hljs-attribute">unicode-bidi</span>: bidi-override} |
Text-overflow 定义省略文本的处理方式
clip 无省略号
Ellipsis 省略号 (注意配合overflow:hidden和white-space:nowrap一块使用)
1 |
<span class="hljs-selector-tag">p</span>{<span class="hljs-attribute">width</span>:<span class="hljs-number">300px</span>;<span class="hljs-attribute">border</span>:<span class="hljs-number">1px</span> solid <span class="hljs-number">#000</span>;<span class="hljs-attribute">font</span>:<span class="hljs-number">14px</span>/<span class="hljs-number">30px</span> <span class="hljs-string">"宋体"</span>; <span class="hljs-attribute">white-space</span>:nowrap; <span class="hljs-attribute">overflow</span>:hidden; <span class="hljs-attribute">text-overflow</span>:ellipsis; } |
自定义文字
代码格式
1 |
@<span class="hljs-keyword">font-face</span> { <span class="hljs-attribute">font-family</span>: <span class="hljs-string">'miaov'</span>; <span class="hljs-attribute">src</span>: <span class="hljs-built_in">url</span>(<span class="hljs-string">'1-webfont.eot'</span>); <span class="hljs-attribute">src</span>: <span class="hljs-built_in">url</span>(<span class="hljs-string">'1-webfont.eot?#iefix'</span>) <span class="hljs-built_in">format</span>(<span class="hljs-string">'embedded-opentype'</span>), <span class="hljs-built_in">url</span>(<span class="hljs-string">'1-webfont.woff'</span>) <span class="hljs-built_in">format</span>(<span class="hljs-string">'woff'</span>), <span class="hljs-built_in">url</span>(<span class="hljs-string">'1-webfont.ttf'</span>) <span class="hljs-built_in">format</span>(<span class="hljs-string">'truetype'</span>), <span class="hljs-built_in">url</span>(<span class="hljs-string">'1-webfont.svg#untitledregular'</span>) <span class="hljs-built_in">format</span>(<span class="hljs-string">'svg'</span>); <span class="hljs-attribute">font-weight</span>: normal; <span class="hljs-attribute">font-style</span>: normal;} |
转换字体格式生成兼容代码http://www.fontsquirrel.com/fontface/generator
弹性布局
弹性盒模型
1 2 3 4 5 6 |
<span class="hljs-tag"><<span class="hljs-name">style</span>></span><span class="css"><span class="hljs-selector-class">.box</span>{<span class="hljs-attribute">height</span>:<span class="hljs-number">100px</span>;<span class="hljs-attribute">padding</span>:<span class="hljs-number">10px</span>; <span class="hljs-attribute">display</span>:-webkit-box; <span class="hljs-attribute">display</span>: -moz-box;}<span class="hljs-selector-class">.box</span> <span class="hljs-selector-tag">div</span>{<span class="hljs-attribute">width</span>:<span class="hljs-number">100px</span>;<span class="hljs-attribute">height</span>:<span class="hljs-number">100px</span>;<span class="hljs-attribute">background</span>:red;<span class="hljs-attribute">border</span>:<span class="hljs-number">1px</span> solid <span class="hljs-number">#fff</span>;}</span><span class="hljs-tag"></<span class="hljs-name">style</span>></span><span class="hljs-tag"></<span class="hljs-name">head</span>></span><span class="hljs-tag"><<span class="hljs-name">body</span>></span><span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"box"</span>></span> <span class="hljs-tag"><<span class="hljs-name">div</span>></span>1<span class="hljs-tag"></<span class="hljs-name">div</span>></span> <span class="hljs-tag"><<span class="hljs-name">div</span>></span>2<span class="hljs-tag"></<span class="hljs-name">div</span>></span> <span class="hljs-tag"><<span class="hljs-name">div</span>></span>3<span class="hljs-tag"></<span class="hljs-name">div</span>></span> <span class="hljs-tag"><<span class="hljs-name">div</span>></span>4<span class="hljs-tag"></<span class="hljs-name">div</span>></span> <span class="hljs-tag"><<span class="hljs-name">div</span>></span>5<span class="hljs-tag"></<span class="hljs-name">div</span>></span><span class="hljs-tag"></<span class="hljs-name">div</span>></span> |
注意在使用弹性盒模型的时候 父元素必须要加display:box 或 display:inline-box
box-orient 定义盒模型的布局方向
1 2 |
<span class="hljs-attribute">Horizontal</span> 水平显示 vertical 垂直方向 |
1 |
<span class="hljs-selector-class">.box</span>{<span class="hljs-attribute">height</span>:<span class="hljs-number">100px</span>;<span class="hljs-attribute">border</span>:<span class="hljs-number">10px</span> solid <span class="hljs-number">#000</span>;<span class="hljs-attribute">padding</span>:<span class="hljs-number">10px</span>; <span class="hljs-attribute">display</span>:-webkit-box;<span class="hljs-attribute">-webkit-box-orient</span>:vertical; } |
box-direction 元素排列顺序
1 2 |
<span class="hljs-attribute">Normal</span> 正序 Reverse 反序 |
1 |
<span class="hljs-selector-class">.box</span>{<span class="hljs-attribute">height</span>:<span class="hljs-number">100px</span>;<span class="hljs-attribute">border</span>:<span class="hljs-number">10px</span> solid <span class="hljs-number">#000</span>;<span class="hljs-attribute">padding</span>:<span class="hljs-number">10px</span>; <span class="hljs-attribute">display</span>:-webkit-box;<span class="hljs-attribute">-webkit-box-direction</span>:Reverse; <span class="hljs-attribute">font-size</span>:<span class="hljs-number">20px</span>;<span class="hljs-attribute">color</span>:<span class="hljs-number">#fff</span>; } |
box-ordinal-group 设置元素的具体位置
1 |
<span class="hljs-selector-class">.box</span>{<span class="hljs-attribute">height</span>:<span class="hljs-number">100px</span>;<span class="hljs-attribute">border</span>:<span class="hljs-number">10px</span> solid <span class="hljs-number">#000</span>;<span class="hljs-attribute">padding</span>:<span class="hljs-number">10px</span>; <span class="hljs-attribute">display</span>:-webkit-box; <span class="hljs-attribute">font-size</span>:<span class="hljs-number">20px</span>;<span class="hljs-attribute">color</span>:<span class="hljs-number">#fff</span>; }<span class="hljs-selector-class">.box</span> <span class="hljs-selector-tag">div</span>{<span class="hljs-attribute">width</span>:<span class="hljs-number">100px</span>;<span class="hljs-attribute">height</span>:<span class="hljs-number">100px</span>;<span class="hljs-attribute">background</span>:red;<span class="hljs-attribute">border</span>:<span class="hljs-number">1px</span> solid <span class="hljs-number">#fff</span>;}<span class="hljs-selector-class">.box</span> <span class="hljs-selector-tag">div</span><span class="hljs-selector-pseudo">:nth-of-type(1)</span>{<span class="hljs-attribute">-webkit-box-ordinal-group</span>:<span class="hljs-number">2</span>;}<span class="hljs-selector-class">.box</span> <span class="hljs-selector-tag">div</span><span class="hljs-selector-pseudo">:nth-of-type(2)</span>{<span class="hljs-attribute">-webkit-box-ordinal-group</span>:<span class="hljs-number">4</span>;}<span class="hljs-selector-class">.box</span> <span class="hljs-selector-tag">div</span><span class="hljs-selector-pseudo">:nth-of-type(3)</span>{<span class="hljs-attribute">-webkit-box-ordinal-group</span>:<span class="hljs-number">1</span>;}<span class="hljs-selector-class">.box</span> <span class="hljs-selector-tag">div</span><span class="hljs-selector-pseudo">:nth-of-type(4)</span>{<span class="hljs-attribute">-webkit-box-ordinal-group</span>:<span class="hljs-number">5</span>;}<span class="hljs-selector-class">.box</span> <span class="hljs-selector-tag">div</span><span class="hljs-selector-pseudo">:nth-of-type(5)</span>{<span class="hljs-attribute">-webkit-box-ordinal-group</span>:<span class="hljs-number">3</span>;} |
box-flex 定义盒子的弹性空间
子元素的尺寸=盒子的尺寸*子元素的box-flex属性值 / 所有子元素的box-flex属性值的和
1 |
<span class="hljs-selector-class">.box</span>{<span class="hljs-attribute">height</span>:<span class="hljs-number">100px</span>;<span class="hljs-attribute">border</span>:<span class="hljs-number">10px</span> solid <span class="hljs-number">#000</span>;<span class="hljs-attribute">padding</span>:<span class="hljs-number">10px</span>; <span class="hljs-attribute">display</span>:-webkit-box; <span class="hljs-attribute">font-size</span>:<span class="hljs-number">20px</span>;<span class="hljs-attribute">color</span>:<span class="hljs-number">#fff</span>; }<span class="hljs-selector-class">.box</span> <span class="hljs-selector-tag">div</span>{<span class="hljs-attribute">height</span>:<span class="hljs-number">100px</span>;<span class="hljs-attribute">background</span>:red;<span class="hljs-attribute">border</span>:<span class="hljs-number">1px</span> solid <span class="hljs-number">#fff</span>;}<span class="hljs-selector-class">.box</span> <span class="hljs-selector-tag">div</span><span class="hljs-selector-pseudo">:nth-of-type(1)</span>{<span class="hljs-attribute">width</span>:<span class="hljs-number">300px</span>;}<span class="hljs-selector-class">.box</span> <span class="hljs-selector-tag">div</span><span class="hljs-selector-pseudo">:nth-of-type(2)</span>{<span class="hljs-attribute">-webkit-box-flex</span>:<span class="hljs-number">2</span>;}<span class="hljs-selector-class">.box</span> <span class="hljs-selector-tag">div</span><span class="hljs-selector-pseudo">:nth-of-type(3)</span>{<span class="hljs-attribute">-webkit-box-flex</span>:<span class="hljs-number">3</span>;}<span class="hljs-selector-class">.box</span> <span class="hljs-selector-tag">div</span><span class="hljs-selector-pseudo">:nth-of-type(4)</span>{<span class="hljs-attribute">-webkit-box-flex</span>:<span class="hljs-number">4</span>;}<span class="hljs-selector-class">.box</span> <span class="hljs-selector-tag">div</span><span class="hljs-selector-pseudo">:nth-of-type(5)</span>{<span class="hljs-attribute">-webkit-box-flex</span>:<span class="hljs-number">5</span>;} |
box-pack 对盒子富裕的空间进行管理
start 所有子元素在盒子左侧显示,富裕空间在右侧
end 所有子元素在盒子右侧显示,富裕空间在左侧
center 所有子元素居中
justify 富余空间在子元素之间平均分布
1 |
<span class="hljs-selector-class">.box</span>{<span class="hljs-attribute">height</span>:<span class="hljs-number">100px</span>;<span class="hljs-attribute">border</span>:<span class="hljs-number">10px</span> solid <span class="hljs-number">#000</span>;<span class="hljs-attribute">padding</span>:<span class="hljs-number">10px</span>; <span class="hljs-attribute">display</span>:-webkit-box;<span class="hljs-attribute">-webkit-box-direction</span>:Reverse; <span class="hljs-attribute">font-size</span>:<span class="hljs-number">20px</span>;<span class="hljs-attribute">color</span>:<span class="hljs-number">#fff</span>;<span class="hljs-attribute">-webkit-box-pack</span>:justify ; } |
box-align 在垂直方向上对元素的位置进行管理
star 所有子元素在据顶
end 所有子元素在据底
center 所有子元素居中
1 2 3 4 5 6 7 |
<span class="hljs-tag"><<span class="hljs-name">style</span>></span><span class="css"> <span class="hljs-comment">/*个未知宽高的块元素如何在屏幕中水平垂直居中?需说明原理。*/</span><span class="hljs-selector-tag">html</span>{<span class="hljs-attribute">height</span>:<span class="hljs-number">100%</span>;}<span class="hljs-selector-tag">body</span>{<span class="hljs-attribute">height</span>:<span class="hljs-number">100%</span>;<span class="hljs-attribute">margin</span>:<span class="hljs-number">0</span>;}<span class="hljs-selector-class">.box</span>{<span class="hljs-attribute">height</span>:<span class="hljs-number">100%</span>; <span class="hljs-attribute">display</span>:-webkit-box;<span class="hljs-attribute">-webkit-box-direction</span>:Reverse; <span class="hljs-attribute">font-size</span>:<span class="hljs-number">20px</span>;<span class="hljs-attribute">color</span>:<span class="hljs-number">#fff</span>;<span class="hljs-attribute">-webkit-box-pack</span>:center; <span class="hljs-attribute">-webkit-box-align</span>:center;}<span class="hljs-selector-class">.box</span> <span class="hljs-selector-tag">div</span>{<span class="hljs-attribute">background</span>:red;<span class="hljs-attribute">border</span>:<span class="hljs-number">1px</span> solid <span class="hljs-number">#fff</span>;}</span><span class="hljs-tag"></<span class="hljs-name">style</span>></span><span class="hljs-tag"></<span class="hljs-name">head</span>></span><span class="hljs-tag"><<span class="hljs-name">body</span>></span><span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"box"</span>></span> <span class="hljs-tag"><<span class="hljs-name">div</span>></span>1s<span class="hljs-tag"></<span class="hljs-name">div</span>></span> <span class="hljs-tag"><<span class="hljs-name">div</span>></span>2s<span class="hljs-tag"></<span class="hljs-name">div</span>></span> <span class="hljs-tag"><<span class="hljs-name">div</span>></span>3s<span class="hljs-tag"></<span class="hljs-name">div</span>></span> <span class="hljs-tag"><<span class="hljs-name">div</span>></span>4s<span class="hljs-tag"></<span class="hljs-name">div</span>></span> <span class="hljs-tag"><<span class="hljs-name">div</span>></span>5s<span class="hljs-tag"></<span class="hljs-name">div</span>></span><span class="hljs-tag"></<span class="hljs-name">div</span>></span> |
盒模型阴影
用法
1 |
<span class="hljs-selector-tag">box-shadow</span>:<span class="hljs-selector-attr">[inset]</span> <span class="hljs-selector-tag">x</span> <span class="hljs-selector-tag">y</span> <span class="hljs-selector-tag">blur</span> <span class="hljs-selector-attr">[spread]</span> <span class="hljs-selector-tag">color</span> |
参数
inset投影方式
inset:内投影
不给:外投影
x、y:阴影偏移
blur:模糊半径
spread:扩展阴影半径
先扩展原有形状,再开始画阴影color
1 2 |
<span class="hljs-selector-tag">box-shadow</span><span class="hljs-selector-pseudo">:10px</span> 10<span class="hljs-selector-tag">px</span> 30<span class="hljs-selector-tag">px</span> <span class="hljs-selector-tag">blue</span>;<span class="hljs-selector-tag">box-shadow</span><span class="hljs-selector-pseudo">:inset</span> 10<span class="hljs-selector-tag">px</span> 10<span class="hljs-selector-tag">px</span> 30<span class="hljs-selector-tag">px</span> <span class="hljs-selector-tag">blue</span>;<span class="hljs-selector-tag">box-shadow</span><span class="hljs-selector-pseudo">:0</span> 0 30<span class="hljs-selector-tag">px</span> 10<span class="hljs-selector-tag">px</span> <span class="hljs-selector-id">#000</span>; <span class="hljs-selector-tag">box-shadow</span><span class="hljs-selector-pseudo">:0</span> 0 30<span class="hljs-selector-tag">px</span> 30<span class="hljs-selector-tag">px</span> <span class="hljs-selector-id">#000</span>,<span class="hljs-selector-tag">inset</span> 0 0 30<span class="hljs-selector-tag">px</span> <span class="hljs-selector-tag">yellow</span>; |
其他盒模型新增属性
box-reflect 倒影
direction 方向必选 above|below|left|right;
距离
渐变(可选)
1 |
img{ -webkit-box-reflect:below;}<span class="hljs-comment">//上下排列,倒影在下方img{ -webkit-box-reflect:right 10px;}//左右排列,倒影在右方img{-webkit-box-reflect:right 10px -webkit-linear-gradient(right,rgba(0,0,0,1) 0,rgba(0,0,0,0) 50%);}//线性渐变,逐渐消失background:-webkit-linear-gradient(red 0,blue 100%);//背景渐变</span> |
resize 自由缩放
both 水平垂直都可以缩放
horizontal 只有水平方向可以缩放
vertical 只有垂直方向可以缩放
1 |
<span class="hljs-selector-class">.box</span>{<span class="hljs-attribute">width</span>:<span class="hljs-number">100px</span>;<span class="hljs-attribute">height</span>:<span class="hljs-number">100px</span>;<span class="hljs-attribute">background</span>:<span class="hljs-built_in">url</span>(bg.jpg);<span class="hljs-attribute">border</span>:<span class="hljs-number">5px</span> solid <span class="hljs-number">#000</span>; <span class="hljs-attribute">resize</span>:both; <span class="hljs-attribute">overflow</span>:auto;} |
注意:一定要配合overflow:auto 一块使用只有水平方向可以缩放
box-sizing 盒模型解析模式
content-box 标准盒模型 width/height=border+padding+content
border-box 怪异盒模型 width/height=content
1 |
<span class="hljs-selector-class">.box</span>{<span class="hljs-attribute">width</span>:<span class="hljs-number">200px</span>;<span class="hljs-attribute">height</span>:<span class="hljs-number">200px</span>;<span class="hljs-attribute">padding</span>:<span class="hljs-number">50px</span>;<span class="hljs-attribute">border</span>:<span class="hljs-number">10px</span> solid <span class="hljs-number">#000</span>; <span class="hljs-attribute">box-sizing</span>:border-box;} |
Css3分栏布局
column-width 栏目宽度
column-count 栏目列数
column-gap 栏目距离
column-rule 栏目间隔线
1 |
.wrap{width:<span class="hljs-number">900</span>px;border:<span class="hljs-number">1</span>px solid #<span class="hljs-number">000</span>; font:<span class="hljs-number">14</span>px/<span class="hljs-number">28</span>px <span class="hljs-string">"宋体"</span>;color:#<span class="hljs-number">000</span>; text-indent:<span class="hljs-number">2</span>em; -webkit-column-width:<span class="hljs-number">400</span>px;}<span class="hljs-comment">//分成了宽度400px的两栏.wrap{ -webkit-column-count:4; -webkit-column-gap:30px; -webkit-column-rule:1px solid red;}//分成了四列</span> |
只有webkit内核实现了该属性
Css3响应式布局
媒体类型
all 所有媒体
braille 盲文触觉设备
embossed 盲文打印机
print 手持设备
projection 打印预览
screen 彩屏设备
speech ‘听觉’类似的媒体类型
tty 不适用像素的设备
tv 电视
关键字
and
not not关键字是用来排除某种制定的媒体类型
only only用来定某种特定的媒体类型
媒体特性
(max-width:600px)
(max-device-width: 480px) 设备输出宽度
(orientation:portrait) 竖屏
(orientation:landscape) 横屏
(-webkit-min-device-pixel-ratio: 2) 像素比
devicePixelRatio 设备像素比 window.devicePixelRatio = 物理像素 / dips
@media screen{ 选择器{属性:属性值; }
}
@media screen and (max-width:400px) {
}
移动端meta
<meta name=”viewport” content=”” />
width [pixel_value | device-height]
height [pixel_value | device-height]
user-scalable 是否允许缩放 (no||yes)
initial-scale 初始比例
minimum-scale 允许缩放的最小比例
maximum-scale 允许缩放的最大比例
target-densitydpi [dpi_value | device-dpi | high-dpi | medium-dpi | low-dpi]
新增样式属性
圆角
border-radius: 1-4个数字 / 1-4个数字
前面是水平,后面是垂直
不给“/”则水平和垂直一样
1 2 3 |
<span class="hljs-attribute">border-radius</span>: <span class="hljs-number">10px</span>/<span class="hljs-number">5px</span>; <span class="hljs-attribute">border-radius</span>:<span class="hljs-number">100px</span>/<span class="hljs-number">150px</span>; <span class="hljs-attribute">border-radius</span>:<span class="hljs-number">20px</span> <span class="hljs-number">40px</span> <span class="hljs-number">60px</span> <span class="hljs-number">80px</span>/<span class="hljs-number">10px</span> <span class="hljs-number">20px</span> <span class="hljs-number">30px</span> <span class="hljs-number">40px</span>; |
参数
各种长度单位都可以:px,%。 %有时很方便但宽高不一致时不太好
1 |
<span class="hljs-selector-tag">border-radius</span><span class="hljs-selector-pseudo">:50</span>%; |
用法
1个:都一样
border-radius: 一样
1 |
<span class="hljs-selector-tag">border-radius</span><span class="hljs-selector-pseudo">:20px</span>; |
2个:对角
border-radius: 左上&右下 右上&左下
1 |
<span class="hljs-selector-tag">border-radius</span><span class="hljs-selector-pseudo">:20px</span> 40<span class="hljs-selector-tag">px</span>; |
3个:斜对角
border-radius: 左上 右上&左下 右下
1 |
<span class="hljs-selector-tag">border-radius</span><span class="hljs-selector-pseudo">:20px</span> 40<span class="hljs-selector-tag">px</span> 60<span class="hljs-selector-tag">px</span>; |
4个:全部,顺时针
border-radius: 左上 右上 右下 左下
1 |
<span class="hljs-selector-tag">border-radius</span><span class="hljs-selector-pseudo">:20px</span> 40<span class="hljs-selector-tag">px</span> 60<span class="hljs-selector-tag">px</span> 80<span class="hljs-selector-tag">px</span>; |
例子:风车
1 2 3 4 5 |
<span class="hljs-tag"><<span class="hljs-name">style</span>></span><span class="css"><span class="hljs-selector-class">.box</span>{<span class="hljs-attribute">width</span>:<span class="hljs-number">400px</span>;<span class="hljs-attribute">height</span>:<span class="hljs-number">400px</span>;<span class="hljs-attribute">margin</span>:<span class="hljs-number">50px</span> auto; <span class="hljs-attribute">transition</span>:<span class="hljs-number">5s</span> linear;}<span class="hljs-selector-class">.box</span> <span class="hljs-selector-tag">div</span>{<span class="hljs-attribute">width</span>:<span class="hljs-number">180px</span>;<span class="hljs-attribute">height</span>:<span class="hljs-number">180px</span>;<span class="hljs-attribute">margin</span>:<span class="hljs-number">10px</span>;<span class="hljs-attribute">border</span>:<span class="hljs-number">1px</span> solid <span class="hljs-number">#000</span>; <span class="hljs-attribute">box-sizing</span>:border-box;<span class="hljs-attribute">float</span>:left;<span class="hljs-attribute">background</span>:red ;}<span class="hljs-selector-class">.box</span> <span class="hljs-selector-tag">div</span><span class="hljs-selector-pseudo">:nth-child(1)</span>,<span class="hljs-selector-class">.box</span> <span class="hljs-selector-tag">div</span><span class="hljs-selector-pseudo">:nth-child(4)</span>{ <span class="hljs-attribute">border-radius</span>:<span class="hljs-number">0</span> <span class="hljs-number">70%</span>;}<span class="hljs-selector-class">.box</span> <span class="hljs-selector-tag">div</span><span class="hljs-selector-pseudo">:nth-child(2)</span>,<span class="hljs-selector-class">.box</span> <span class="hljs-selector-tag">div</span><span class="hljs-selector-pseudo">:nth-child(3)</span>{ <span class="hljs-attribute">border-radius</span>:<span class="hljs-number">70%</span> <span class="hljs-number">0</span>;}<span class="hljs-selector-class">.box</span><span class="hljs-selector-pseudo">:hover</span>{ <span class="hljs-attribute">-webkit-transform</span>:<span class="hljs-built_in">rotate</span>(720deg);}</span><span class="hljs-tag"></<span class="hljs-name">style</span>></span><span class="hljs-tag"></<span class="hljs-name">head</span>></span><span class="hljs-tag"><<span class="hljs-name">body</span>></span><span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"box"</span>></span> <span class="hljs-tag"><<span class="hljs-name">div</span>></span><span class="hljs-tag"></<span class="hljs-name">div</span>></span> <span class="hljs-tag"><<span class="hljs-name">div</span>></span><span class="hljs-tag"></<span class="hljs-name">div</span>></span> <span class="hljs-tag"><<span class="hljs-name">div</span>></span><span class="hljs-tag"></<span class="hljs-name">div</span>></span> <span class="hljs-tag"><<span class="hljs-name">div</span>></span><span class="hljs-tag"></<span class="hljs-name">div</span>></span><span class="hljs-tag"></<span class="hljs-name">div</span>></span> |
边框
边框图片 border-image
border-image-sourceg 引入图片
border-image-slice 切割图片
border-image-width 边框宽度
border-image-repeat 图片的排列方式 round 平铺,repeat 重复,stretch拉伸
1 |
<span class="hljs-selector-class">.box</span>{<span class="hljs-attribute">width</span>:<span class="hljs-number">200px</span>;<span class="hljs-attribute">height</span>:<span class="hljs-number">60px</span>; <span class="hljs-attribute">-webkit-border-image</span>:<span class="hljs-built_in">url</span>(bt_blue.png) <span class="hljs-number">0</span> <span class="hljs-number">10</span>;<span class="hljs-attribute">border-left-width</span>:<span class="hljs-number">20px</span>;<span class="hljs-attribute">border-right-width</span>:<span class="hljs-number">20px</span>;}<span class="hljs-selector-class">.box</span>{<span class="hljs-attribute">width</span>:<span class="hljs-number">100px</span>;<span class="hljs-attribute">height</span>:<span class="hljs-number">100px</span>; <span class="hljs-attribute">border-width</span>:<span class="hljs-number">20px</span>; <span class="hljs-attribute">-webkit-border-image</span>:<span class="hljs-built_in">url</span>(border.png) <span class="hljs-number">27</span> <span class="hljs-number">27</span> round round;} |
边框颜色 border-colors 只在火狐下实现
1 |
<span class="hljs-deletion">-moz-border-left-colors:red blue yellow red blue yellow red blue yellow;</span> |
线性渐变
线性渐变格式
linear-gradient([<起点> || <角度>,]? <点>, <点>…)
只能用在背景上
IE 下的样式格式如下
1 |
<span class="hljs-attribute">filter</span>:progid:DXImageTransform.Microsoft.gradient(startColorstr=<span class="hljs-string">'#ffffff'</span>,endColorstr=<span class="hljs-string">'#ff0000'</span>,GradientType=<span class="hljs-string">'1'</span>);` |
参数
起点:从什么方向开始渐变 left、top、left top 默认:top
角度:从什么角度开始渐变 x deg的形式
1 |
<span class="hljs-selector-tag">background-image</span><span class="hljs-selector-pseudo">:-webkit-linear-gradient(60deg</span>,<span class="hljs-selector-tag">red</span>,<span class="hljs-selector-tag">blue</span>);<span class="hljs-selector-tag">background-image</span><span class="hljs-selector-pseudo">:-webkit-linear-gradient(60deg</span>,<span class="hljs-selector-tag">red</span>,<span class="hljs-selector-tag">blue</span>,<span class="hljs-selector-tag">yellow</span>,<span class="hljs-selector-tag">blue</span>); |
点:渐变点的颜色和位置
black 50%,位置可选
线性渐变实例进度条
1 2 |
<span class="hljs-tag"><<span class="hljs-name">style</span>></span><span class="css"><span class="hljs-selector-class">.wrap</span>{<span class="hljs-attribute">width</span>:<span class="hljs-number">200px</span>;<span class="hljs-attribute">height</span>:<span class="hljs-number">30px</span>;<span class="hljs-attribute">overflow</span>:hidden;<span class="hljs-attribute">border</span>:<span class="hljs-number">1px</span> solid <span class="hljs-number">#000</span>;}<span class="hljs-selector-class">.box</span>{<span class="hljs-attribute">width</span>:<span class="hljs-number">400px</span>;<span class="hljs-attribute">height</span>:<span class="hljs-number">30px</span>;<span class="hljs-attribute">background</span>:<span class="hljs-built_in">-webkit-repeating-linear-gradient</span>(15deg,green 0,green 10px,#fff 10px,#fff 20px); <span class="hljs-attribute">transition</span>:<span class="hljs-number">3s</span>;}<span class="hljs-selector-class">.wrap</span><span class="hljs-selector-pseudo">:hover</span> <span class="hljs-selector-class">.box</span>{ <span class="hljs-attribute">margin-left</span>:-<span class="hljs-number">100px</span>;}</span><span class="hljs-tag"></<span class="hljs-name">style</span>></span><span class="hljs-tag"></<span class="hljs-name">head</span>></span><span class="hljs-tag"><<span class="hljs-name">body</span>></span><span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"wrap"</span>></span> <span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"box"</span>></span><span class="hljs-tag"></<span class="hljs-name">div</span>></span><span class="hljs-tag"></<span class="hljs-name">div</span>></span> |
1 |
<span class="hljs-selector-tag">background-image</span><span class="hljs-selector-pseudo">:-webkit-linear-gradient(60deg</span>,<span class="hljs-selector-tag">red</span> 0,<span class="hljs-selector-tag">blue</span> 50%,<span class="hljs-selector-tag">green</span> 100%); |
repeating-linear-gradient
1 |
<span class="hljs-selector-tag">background-image</span><span class="hljs-selector-pseudo">:-webkit-repeating-linear-gradient(60deg</span>,<span class="hljs-selector-tag">red</span> 0,<span class="hljs-selector-tag">blue</span> 30<span class="hljs-selector-tag">px</span>); |
性渐变实例(2)
加入点的位置
top, red 40%, green 60%
top, red 50%, green 50%
同一个位置两个点——直接跳变
也可以用px 配合rgba
top, rgba(255,255,255,1), rgba(255,255,255,0)
加入背景图片
1 |
<span class="hljs-attribute">background: -webkit-linear-gradient (top, rgba(255,255,255,1) 30%, rgba(255,255,255,0)), url(a.gif)</span> |
实例:百度音乐图片光影效果
1 |
<span class="hljs-tag"><<span class="hljs-name">style</span>></span><span class="css"><span class="hljs-selector-class">.box</span>{<span class="hljs-attribute">width</span>:<span class="hljs-number">300px</span>;<span class="hljs-attribute">height</span>:<span class="hljs-number">300px</span>;<span class="hljs-attribute">background</span>:<span class="hljs-built_in">-webkit-linear-gradient</span>(-30deg,rgba(255,255,255,0) <span class="hljs-number">0</span>,<span class="hljs-built_in">rgba</span>(255,255,255,0) <span class="hljs-number">150px</span>,<span class="hljs-built_in">rgba</span>(255,255,255,1) <span class="hljs-number">170px</span>,<span class="hljs-built_in">rgba</span>(255,255,255,1) <span class="hljs-number">180px</span>,<span class="hljs-built_in">rgba</span>(255,255,255,0) <span class="hljs-number">210px</span>) no-repeat -<span class="hljs-number">200px</span> <span class="hljs-number">0</span>,<span class="hljs-built_in">url</span>(new_bg.png) no-repeat; <span class="hljs-attribute">transition</span>:<span class="hljs-number">1s</span>;}<span class="hljs-selector-class">.box</span><span class="hljs-selector-pseudo">:hover</span>{<span class="hljs-attribute">background-position</span>:<span class="hljs-number">300px</span> <span class="hljs-number">0</span>,-<span class="hljs-number">100px</span> -<span class="hljs-number">100px</span>;}</span><span class="hljs-tag"></<span class="hljs-name">style</span>></span><span class="hljs-tag"></<span class="hljs-name">head</span>></span><span class="hljs-tag"><<span class="hljs-name">body</span>></span><span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"box"</span>></span><span class="hljs-tag"></<span class="hljs-name">div</span>></span> |
兼容版本
1 |
<span class="hljs-selector-class">.box</span>{<span class="hljs-attribute">background</span>:<span class="hljs-built_in">-webkit-linear-gradient</span>(red,blue);<span class="hljs-attribute">background</span>:<span class="hljs-built_in">-moz-linear-gradient</span>(red,blue);<span class="hljs-attribute">background</span>:<span class="hljs-built_in">linear-gradient</span>(red,blue); <span class="hljs-attribute">filter</span>:progid:DXImageTransform.Microsoft.<span class="hljs-built_in">gradient</span>(startColorstr=<span class="hljs-string">'red'</span>,endColorstr=<span class="hljs-string">'blue'</span>,GradientType=<span class="hljs-string">'0'</span>);} |
径向渐变
radial-gradient([<起点>]? [<形状> || <大小>,]? <点>, <点>…);
起点:可以是关键字(left,top,right,bottom),具体数值或百分比
形状: ellipse、circle
大小 :具体数值或百分比,也可以是关键字(最近端,最近角,最远端,最远角,包含或覆盖 (closest-side, closest-corner, farthest-side, farthest-corner, contain or cover));
注意firefox目前只支持关键字
1 |
<span class="hljs-selector-tag">background</span><span class="hljs-selector-pseudo">:-webkit-radial-gradient(red</span>,<span class="hljs-selector-tag">blue</span>);<span class="hljs-selector-tag">background</span><span class="hljs-selector-pseudo">:-webkit-radial-gradient(100px</span> 50<span class="hljs-selector-tag">px</span>,<span class="hljs-selector-tag">red</span>,<span class="hljs-selector-tag">blue</span>);<span class="hljs-selector-tag">background</span><span class="hljs-selector-pseudo">:-webkit-radial-gradient(100px</span> 50<span class="hljs-selector-tag">px</span>,<span class="hljs-selector-tag">circle</span>,<span class="hljs-selector-tag">red</span>,<span class="hljs-selector-tag">blue</span>);<span class="hljs-selector-tag">background</span><span class="hljs-selector-pseudo">:-webkit-radial-gradient(100px</span> 50<span class="hljs-selector-tag">px</span>,100<span class="hljs-selector-tag">px</span> 20<span class="hljs-selector-tag">px</span>,<span class="hljs-selector-tag">red</span>,<span class="hljs-selector-tag">blue</span>);<span class="hljs-selector-tag">background</span><span class="hljs-selector-pseudo">:-moz-radial-gradient(100px</span> 50<span class="hljs-selector-tag">px</span>,<span class="hljs-selector-tag">red</span>,<span class="hljs-selector-tag">blue</span>); |
1 |
<span class="hljs-tag"><<span class="hljs-name">style</span>></span><span class="css"><span class="hljs-selector-class">.box</span>{<span class="hljs-attribute">width</span>:<span class="hljs-number">300px</span>;<span class="hljs-attribute">height</span>:<span class="hljs-number">300px</span>;<span class="hljs-attribute">border</span>:<span class="hljs-number">1px</span> solid <span class="hljs-number">#000</span>;<span class="hljs-attribute">float</span>:left;<span class="hljs-attribute">margin</span>:<span class="hljs-number">10px</span>;}<span class="hljs-selector-class">.box</span><span class="hljs-selector-pseudo">:nth-child(1)</span>{ <span class="hljs-attribute">background</span>:<span class="hljs-built_in">-webkit-radial-gradient</span>(100px 50px,closest-side,red,blue);}<span class="hljs-selector-class">.box</span><span class="hljs-selector-pseudo">:nth-child(2)</span>{ <span class="hljs-attribute">background</span>:<span class="hljs-built_in">-webkit-radial-gradient</span>(100px 50px,closest-corner,red,blue);}<span class="hljs-selector-class">.box</span><span class="hljs-selector-pseudo">:nth-child(3)</span>{ <span class="hljs-attribute">background</span>:<span class="hljs-built_in">-webkit-radial-gradient</span>(100px 50px,farthest-side,red,blue);}<span class="hljs-selector-class">.box</span><span class="hljs-selector-pseudo">:nth-child(4)</span>{ <span class="hljs-attribute">background</span>:<span class="hljs-built_in">-webkit-radial-gradient</span>(100px 50px,farthest-corner,red,blue);}<span class="hljs-selector-class">.box</span><span class="hljs-selector-pseudo">:nth-child(5)</span>{ <span class="hljs-attribute">background</span>:<span class="hljs-built_in">-webkit-radial-gradient</span>(100px 50px,contain ,red,blue);}<span class="hljs-selector-class">.box</span><span class="hljs-selector-pseudo">:nth-child(6)</span>{ <span class="hljs-attribute">background</span>:<span class="hljs-built_in">-webkit-radial-gradient</span>(100px 50px,cover ,red,blue);}</span><span class="hljs-tag"></<span class="hljs-name">style</span>></span><span class="hljs-tag"></<span class="hljs-name">head</span>></span><span class="hljs-tag"><<span class="hljs-name">body</span>></span><span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"box"</span>></span><span class="hljs-tag"></<span class="hljs-name">div</span>></span><span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"box"</span>></span><span class="hljs-tag"></<span class="hljs-name">div</span>></span><span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"box"</span>></span><span class="hljs-tag"></<span class="hljs-name">div</span>></span><span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"box"</span>></span><span class="hljs-tag"></<span class="hljs-name">div</span>></span><span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"box"</span>></span><span class="hljs-tag"></<span class="hljs-name">div</span>></span><span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"box"</span>></span><span class="hljs-tag"></<span class="hljs-name">div</span>></span><span class="hljs-tag"></<span class="hljs-name">body</span>></span> |
背景
多背景 先写的背景在上面
逗号分开
background: url(a.jpg) 0 0, url(b.jpg) 0 100%;
1 |
<span class="hljs-attribute">background</span>:url(<span class="hljs-string">bt_blue.png</span>) no-repeat, url(<span class="hljs-string">border.png</span>) repeat-y right <span class="hljs-number">0</span>; |
背景尺寸
background-size:x y
background-size:100% 100%
Cover 放大
Contain 缩小
ackground-origin : border | padding | content
border-box: 从border区域开始显示背景。
padding-box: 从padding区域开始显示背景。
content-box: 从content区域开始显示背景。
background-clip
border: 从border区域向外裁剪背景。
padding: 从padding区域向外裁剪背景。
content: 从content区域向外裁剪背景。
no-clip: 从border区域向外裁剪背景。
实例:iphone开机动画
遮罩
Mask-image
Mask-position
Mask-repeat
实例:特殊形状的幻灯片效果
1、通过 translate 来移动元素和用 left top 移动元素有何区别?分别有何优劣?
2、在兼容IE6及所有其他浏览器、不使用JS的前提下:一个未知宽高的块元素如何在屏幕中水平垂直居中?需说明原理。
3、在兼容IE6及所有其他浏览器、不使用JS的前提下:三列布局:中间宽度固定,两侧宽度自适应屏幕?需说明原理。
4、在兼容IE6及所有其他浏览器、不使用JS的前提下:三列布局:中间自适应屏幕,两侧固定宽度,要求至少两种方式完成。
5、请在IE6下实现元素(如:DIV)中心点的旋转?
6、对于一个大型网站静态页面的制作,谈谈你对HTML结构的设计、CSS样式表规划及重用性的思考?