这个问题是关于在.css文件中组织实际的CSS指令本身.在开发一个或一组新页面时,我通常只是手动将指令添加到.css文件,并在可能的情况下try 重构.一段时间后,我有数百(或数千)行,在调整布局时很难找到我需要的内容.

有人对如何组织指令有什么建议吗?

  • 我是否应该try 自上而下地组织,模仿DOM?
  • 我是否应该按功能组织,将支持UI相同部分的元素的指令放在一起?
  • 我应该按 Select 器的字母顺序排序吗?
  • 这些方法的某种组合呢?

另外,在将一个文件拆分成单独的文件之前,我应该在一个文件中保存多少CSS是否有限制?比如说,1000行?或者把所有的东西都放在一个地方总是一个好主意?

相关问题:What's the best way to organize CSS rules?

推荐答案

先来看看这三个幻灯片共享演示文稿:

首先,也是最重要的,记录您的CSS.无论您使用哪种方法来组织CSS,都要保持一致,并将其记录在案.在每个文件的顶部描述该文件中的内容,可能会提供一个目录,可能会引用易于搜索的唯一标记,这样您就可以在编辑器中轻松地跳到这些部分.

如果您想要将CSS拆分成多个文件,请务必这样做.OLI已经提到额外的HTTP请求可能很昂贵,但是您可以两全其美.使用某种构建脚本将文档完整的模块化CSS发布到压缩的单个CSS文件.YUI Compressor可以帮助压缩.

与其他人到目前为止所说的形成对比的是,我更喜欢将每个属性写在单独的行上,并使用缩进来对相关规则进行分组.例如,遵循OLI的示例:

#content {
    /* css */
}
    #content div {
        /* css */
    }
    #content span {
        /* css */
    }
    #content etc {
        /* css */
    }

#header {
    /* css */
}
    #header etc {
        /* css */
    }

这使得遵循文件 struct 变得容易,尤其是在组之间有足够的空格和清晰标记的注释的情况下(尽管快速浏览不是那么容易),而且易于编辑(因为您不必 for each 规则费力地浏览CSS的单个长行).

理解并使用cascadespecificity(所以按字母顺序排列 Select 器是正确的).

我是否将CSS拆分为多个文件,以及使用哪些文件取决于网站和CSS的大小和复杂性.我总是至少有reset.css分.如果网站导航菜单变得有点复杂,通常会有layout.css个页面布局,nav.css个,如果我有足够的CSS来设计表单,则会有forms.css个.除此之外,我自己也还在想办法.我可能需要colors.csstype.css/fonts.css来分割 colored颜色 /图形和排版,base.css来为所有HTML标记提供完整的基本样式...

Css相关问答推荐

React呈现多个css文件

VueJS CSS动画不会扩展到v-card/v-col之外

具有不同边框宽度和 colored颜色 的边框半径,Safari渲染问题

如何在点击时停止动画并将其返回到第一帧?

CSS Select 器仅 Select 具有特定类名称的每行的第一个单元格

2 列 UL,右列中的列表项数量为奇数?

如何简化CSS?

如何给三角形添加渐变?

如果父项的不透明度小于 1,则背景过滤器不适用

nth-child 在一个页面上工作,但不在另一个页面上

当计算的宽度不准确时,如何在 cypress 中测试元素的宽度?

Angular 导航栏问题

有条件地覆盖 CSS 中的 AntD Select 样式

twitter-bootstrap:当鼠标悬停在 -tag 中的 btn-group 上时,如何go 掉带下划线的按​​钮文本?

导航栏中的 Bootstrap 3.0 按钮

让 div 占据 100% 身体高度,减go 固定高度的页眉和页脚

Bootstrap 3 Glyphicons CDN

css 中的 clearfix 类有什么作用?

对象拟合不影响图像

我可以在 css 中指定 maxlength 吗?