第2章 为样式找到应用目标

一 选择器

常用选择器:类型选择器(P,h),后代选择器(空格连接),Id选择器(#),类选择器(.)和

伪类:根据文档之外的其他条件为文档应用样式,如表单元素或链接的状态。

   :link和:visited称为链接伪类,只能用于锚元素;:hover,:active,:foucs称为动态伪类,理论上适用于任何元素。ie6忽略:foucs,Ie7在任何元素上都支持:hover,忽      略:active,:foucs。

通用选择器:*

高级选择器:ie6及更低版本不支持,但可以向后兼容

      包括子选择器(>)和相邻同胞选择器(+),bug:在ie7中,如果父元素和子元素之间有注释会有问题

      属性选择器([])

二 层叠和特殊性

    1 层叠给每个属性分配一个重要度。用STYLE属性编写的规则高于其他规则,具有Id选择器的规则高于没有id选择器的规则,具有类选择器的规则高于没有类选择器的规则。如果两个选择器的规则相同,则后定义的规则优先。

    如果遇到了似乎没有起作用的规则,则很可能出现了特殊性冲突。可以在选择器中添加它的父元素的id来提高特殊性。

    2 继承:元素后代继承父元素的某些属性。

    如果在主体设置字号,页面上的任何标题都没有采用此样式。不是因为标题没有继承文本字号,而是浏览器的默认样式表设置了标题字号。继承而来的样式特殊性为空,所以直接应用于元素的任何样式总会覆盖继承而来的样式。

    在firefox中用Firebug可以查明样式的来源。

三 规划,组织和维护样式表

  1   a.<style>标签放入文档头部

     b.外部样式表

     c.从另一个样式表导入样式表,例 @import url(/css/layout.css),但是导入样式表比链接样式慢且浏览器会限制文件数量。

  2 设计代码结构

    示例

/* Remove padding and margin */
* {
  margin: 0;
    padding: 0;
}

/* Put it back on certain elements */
h1, h2, h3, h4, h5, h6, p, pre, blockquote, form, fieldset, table, ul {
  margin: 1em 0;
}

/* Class for clearing floats */
.clear {
    clear:both;
}

/* Remove border around linked images */
img {
    border: 0;
}

/* =Typography
-----------------------------------------------------------------------------*/
body {
  font: 62.5%/1.6 "Lucida Grande", "Lucida Sans", "Trebuchet MS", Tahoma, Verdana, sans-serif;
}

/* =Headings
-----------------------------------------------------------------------------*/
/* =Links
-----------------------------------------------------------------------------*/
/* =Branding
-----------------------------------------------------------------------------*/
/* =Main Nav
-----------------------------------------------------------------------------*/
/* =Sub Nav
-----------------------------------------------------------------------------*/
/* =Main Content
-----------------------------------------------------------------------------*/
/* =Secondary Content
-----------------------------------------------------------------------------*/
/* =Footer
-----------------------------------------------------------------------------*/
/* =Forms
-----------------------------------------------------------------------------*/
/* Removes fieldset borders. even on Opea 7 */
fieldset {
  border: 1px solid transparent;
}
/* =Tables -----------------------------------------------------------------------------*/ table { border-spacing: 0; border-collapse: collapse; } td { text-align: left; font-weight: normal; } /* =Misc 1 -----------------------------------------------------------------------------*/ /* =Misc 2 -----------------------------------------------------------------------------*/

 

  3 删除注释和优化样式表

    a 在线css优化器

    b 服务器端压缩(最佳)

 

 

      

    

posted @ 2015-11-15 21:06  hou_hou  阅读(176)  评论(0编辑  收藏  举报