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