技术开发 频道

《播客》项目总结

   

    id和class到底用哪一个?

    首先要明白id和class各自的优缺点,这样才能根据它们各自的特点进行使用。
    id的优点(class的缺点):id在css用"#"选择器,class在css中用"."选择器。"#"选择器的优先级高于"."选择器大约10倍,所以当需要提升优先级的时候,id标签或者id容器内的标签将是容易和有效的,而class标签或者class容器内的标签将可能导致优先级的提升失败。
    id的缺点(class的优点):id应该是唯一的,所以它的可复用性很差;而class是可以复用的。所以如果是多个页面,或者一个页面会使用多次,那么一定要使用class作为样式选择器。由于id的唯一性,当一个控件的id的产生是不可控的,那么这个id选择器将失去意义。但是,任何一个控件即使是动态产生的,它的cssclass仍然是可定制的,所以当此标签需要用服务器端控件替代,而服务器端控件的id又不确定时,请使用class选择器。这样,只要将服务器端控件的cssclass设为你的class选择器的名称即可。当然,id或者css的选择还需要大量的经验积累,项目做得多了就会逐步地改进。

    padding和margin到底用哪一个?

    padding和margin可以让一块区域的外观显示完全一样,所以很多人认为padding和margin是可以互换的。其实,它们的差别很大,到底选择哪一个需要认真慎重地考虑。我认为对容器使用padding还是对容器内的标签使用margin的原则是,以当隐藏该容器或容器内的标签时对整体布局影响最小为益(现实项目中经常需要将某个部件隐藏、显示)。
    对于padding再说一句,IE 6和IE 7(及FireFox)对带有padding样式标签的宽度的解析是不一样的。IE 6的标签宽度不包含padding-left和padding-right的值,而IE 7和FireFox则是包含padding-left和padding-right值的。例如,一个div的width设置为100px,padding设为10px,在IE 6中它要占据的宽度是120px(包含10个padding-left和10个padding-right),而在IE 7和FireFox中则只占据100px的宽度,因为IE 7和FireFox会认为100px已经包含了20px的padding。

    min-height和height

    如果只需要兼容IE 6,那么完全不需要注意min-height样式,因为IE 6根本就不支持该样式。但是当页面需要照顾到IE 7和FireFox时,一定要注意min-height样式。因为很多在IE 6下设置“height=固定值”的样式,当容器被其中内容撑到大于该高度时,IE 7和FireFox不会自适应高度,从而导致布局混乱。要想在IE 6、IE 7和FireFox中都可以自适应高度,正确的做法是设置min-height和用csshack设置height。例如:
min-height:600px;
_height:600px;

    这样,在容器里的东西很少时,页面显示固定高度600px;当容器里的东西很多时,则会自适应的增长高度。对于height的设置一定要特别注意,如果是布局用的容器的height需要特别注意,否则在FireFox中会导致无法浮起,从而使布局混乱。

 

0
相关文章