css书写规则总结

1. JavaScript钩子使用的class不能是css class,要加j或j-前缀css

2. 选择器html

  2.1 css选择器尽可能简短,层级要少,最好是1-2层前端

  例如:.nav{} 优于 ul.nav{}htm

  2.2 不要依赖于html层级结构继承

  例如:.nav a{} 优于 .nav li a{}图片

  2.3 不用Id选择器,复用度过低ip

  2.4 用class命中元素,而不是标签element

3. 不声明高度。高度仅仅用于尺寸固定的东西,例如图片和css sprite.
而p,ul,div等元素上不该当声明高度,须要时,优先使用line-height,更加灵活开发

4. 简写it

background:red是很差的写法。由于其同时声明了
background-image:none;
background-position:top left;
background-repeat: repeat;
background-color:red;
应当用 background-color:red

只修改底边距的话,margin-bottom:0 优于 margin:0


5.使用Sass等预处理器,减小嵌套层次,最好2层之内

6. BEM命名法

BEM,即Block, Element, Modifier,是由Yandex(俄罗斯最著名的互联网企业)的开发团队提出的前端开发理论。BEM经过Block、Element、Modifier来描述页面。

Block是页面中独立存在的区块,能够在不一样场合下被重用。每一个页面均可以看作是多个Block组成。

Element是构成Block的元素,只有在对应Block内部才具备意义,是依赖于Block的存在。

Modifier是描述Block或Element的属性或状态。同一Block或Element能够有多个Modifier。

这三部分结合在一块儿,能够体如今class命名上,从而为开发者提供更友好、更有意义的css组织方式。其形式是:

.block { }
.block_modifier { }
.block__element { }
.block__element_modifier { }

7. OOCSS

Separate structure and skin

分离结构和主题是在于将一些视觉样式效果(例如background、color)做为单独的“主题”来应用。在上面的例子中的阴影效果,没有被直接写在media的样式规则内,而是被单独写在了一个名为media-shadow的class中。所以,它成为了可选择、可拆分的主题。若是不须要对应主题,什么也不要加,若是须要,加上对应的class,就是这样的思路。

Separate container and content

分离容器和内容要求使页面元素不依赖于其所处位置。在上面的例子中,css的选择符都很短,无继承选择符(例如.header .media { }),因此,这个图文排列的元件,能够在任何地方使用,且会有一致的外观。

若是须要在特定的地方让这个元件看起来不同一些,继续为这个元件增长class,将“不同的部分”做为可配置的选项。元件的外观仍不依赖其所处位置。

相关文章
相关标签/搜索