<p class="sycode"> 精通CSS:高级Web标准解决方案(第2版) </p> <p class="sycode"> </p> <p class="sycode"></p> <p class="sycode"> 跳转至: 导航、 搜索 </p> <p class="sycode"> </p> <ol> <li>层叠重要度:(也就是说,用户!important可以覆盖inline style) <ol> <li>!important、用户>作者、最后是浏览器/用户代理</li> </ol> </li> <li>规则特殊性(次序)的计算:a,b,c,d <strong>如果相同,后定义的优先</strong> <ol> <li>如果是inline style,a=1</li> <li>b=ID选择器(#id)的个数</li> <li>c=类、伪类、属性选择器的个数</li> <li>d=类型、伪元素选择器的个数</li> </ol> </li> <li>=> 大网站复杂内容情况下如何管理规则次序???</li> <li>@import比link慢?</li> <li>p41 (垂直)margin叠加(=max(upper's margin-bottom, down's margin-top)) <ol> <li>元素嵌套包含、空元素都会发生叠加</li> <li>only for 普通文档流的block框,inline、float、position:absolute的不会叠加</li> </ol> </li> <li>inline:设置高度、宽度没有作用,line-height <ol> <li>=> inline-block</li> </ol> </li> <li>无法直接对{匿名block、文本line框}应用样式</li> <li>position:relative:可以指定left、top“相对于”原来位置,元素仍然占据原来的空间</li> <li>position:absolute:元素不占据文档流空间(这相当于提升其z-index?) <ol> <li>相对于距离它最近的祖先元素定位(由此可以看出CSS是先定位祖先元素,后子孙元素的?)</li> </ol> </li> <li>position:fixed:相对于viewport(一般用于用户评论)</li> <li>position:float:可以(脱离文档流)左右移动,<strong>直到碰到包含框(containing box)或另一个浮动框</strong> <ol> <li>如果包含块(containing block?)无法水平容纳下所有元素,其他float元素将下移</li> <li>文本元素会受float的影响,造成类似于WORD‘文字环绕’的效果 <ol> <li>要阻止之,对这些文本行clear float。</li> <li>可使用一个空元素clear:both,使得父容器包含浮动元素。(也可以直接float容器,但这会影响下一个元素) <ol> <li>.clearFloat:after { content:"."; height:0; visibility:hidden; display:block; clear:both; } <ol> <li>IE 6-中的‘Holly hack’</li> </ol> </li> </ol> </li> </ol> </li> </ol> </li> <li>p56 利用背景图象创建项目符号</li> <li>p65 圆角框在CSS 3里很容易处理,在CSS 2.1时代的各种tricks略过 <ol> <li>9切分的border-image: url(user-corner.gif) 25% 25% 25% 25% / 25px round round;</li> </ol> </li> <li>CSS投影:box-shadow</li> <li>CSS视差:background-position: 20% 0;</li> <li>图象替换(CSS 2.1): <ol> <li>FIR:文本的display:none造成不适合屏幕阅读器</li> <li>Phark:使用text-indent:-5000px; 对于关闭图象但打开CSS的情况无效</li> <li>sIFR(JS+Flash)</li> </ol> </li> <li>p87 CSS 3允许:target伪类?(恩,这么做没有信息泄露问题)</li> <li>外链样式(常见于Wiki)</li> <li>p92 文本在行框中总是垂直居中的(??),设置line-height即可,使用height会导致文本不是垂直居中,从而必须设置额外的padding</li> <li>CSS Tooltip:不如最简单的title属性吧?</li> <li>p105 在导航条中突出显示当前页面:使用2个ID,其中一个应用到body元素上,进行组合匹配(这样,导航条的后台不需要特殊处理。。。)酷!</li> <li>p114 IE老版本不支持在非锚元素上使用:hover,可以用JS或.htc行为文件启用这个功能</li> <li>CSS图象映射:用一个div包住img,设置其大小等于图象并position:relative; 然后让各个li元素相对于div定位,用:hover显示border线。。。</li> <li>p129 远距离翻转:实际上很简单,让锚元素包住一个div/span/li,然后用绝对定位把这些包含元素移动到页面其他位置,设置锚元素的:hover即可。</li> <li>p136 table元素border的2种模型:collapse|separate</li> <li>表单元素 <ol> <li>fieldset:分块标题(Group Panel/Box)</li> <li>label的2种使用方式:嵌套包含input;使用for属性关联input(id)</li> </ol> </li> <li>p153 ‘所有CSS布局的根本都是3个基本概念:定位、浮动、margin操纵。’ <ol> <li>IE 6-不支持margin:auto; 幸运的是,IE把text-align:center;误解为让所有东西居中,而不仅仅是文本(。。。)</li> <li>p159 在符合标准的浏览器中,如果元素的内容太大,它只会超出box之外。但是,IE会扩展整个元素(。。。-_-)</li> <li>3列布局:分解为2个嵌套的两列布局???</li> <li>p164 流式布局:+ min-width!(哈哈,我觉得可以出一个在线的CSS考试系统了,题目就是精确到px的布局,要JS进行检验效果对不对。。。哈)</li> <li>p166 弹性布局:相对于字号(em单位)布局(对支持页面缩放的浏览器而言没有必要) <ol> <li>body{font-size:62.5%;} 只以em为单位设置容器的宽度,内部宽度仍然使用%</li> </ol> </li> <li>p170 faux列(略)</li> </ol> </li> <li>bug与修复bug <ol> <li>IE的‘拥有布局’(hasLayout) <ol> <li>设置以下属性会使元素拥有布局:float、display:inline-block;、width/height、zoom、writing-mode:tb-rl; IE7中增加了:overflow、min-width:任何值、max-width:除none外任何值 </li> <li>例如:IE中文本段落拥有布局,不会出现环绕float元素的效果</li> <li>又如:IE 6-中,拥有布局的元素会错误地扩展以适应内容尺寸 ...</li> </ol> </li> <li>hack和过滤器(略)</li> <li>IE 6-上的常见bug: <ol> <li>任何浮动元素的margin加倍???改为display:inline;</li> <li>3px文本偏移</li> <li>一系列浮动元素的最后元素的最后几个字符重复:删除注释(。。。!)</li> <li>*IE6的‘peek-a-boo’bug</li> <li>*相对容器中的绝对定位(o, i c,shit):.rel-container{height:1%;}</li> </ol> </li> </ol> </li> <li>案例研究 <ol> <li>Roma Italia <ol> <li>Cufon?用所选的字体显示html,不需要任何图象或@font-face(???):所选字体的EULA必须允许在Web上进行字体嵌入</li> </ol> </li> <li>Climb the Mountains <ol> <li> :first-child</li> <li>组合class </li> </ol> </li> </ol> </li> </ol>