程序员人生 网站导航

精通CSS:高级Web标准解决方案(第2版)

栏目:互联网时间:2014-11-12 08:40:10

精通CSS:高级Web标准解决方案(第2版)

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

最新技术推荐