【发布时间】:2012-10-01 03:05:39
【问题描述】:
零维度
每个人都从一个包含所有样式的文件开始使用 CSS。
style.css
1D
很快它就变得庞大了,人们决定按页面元素将 CSS 分组到多个文件中:
html_elements.cssheader.cssmain-area.cssfooter.css
有些人可能觉得这不够方便,并按功能对样式进行分组:
typography.csslayout.css-
sticky-footer.css(包含许多元素的声明,而不仅仅是页脚)
二维
当一个项目有很多 CSS 时,它可能需要同时使用这两个分组。 CSS 文件结构变成二维的:
layout/
grid-system.cssheader.csssidebars.css
look/
-
typography/main.cssheaders.csslists.css
-
backgrounds/html_elements.cssheader.cssmain-area.cssfooter.css
好吧,这个例子是虚构的,但你确实明白我的意思。
到目前为止一切都很好。
输入媒体查询
这就是我的 CSS 结构被搞砸的地方。
除了上述的 2D 结构之外,我还必须通过媒体查询来构建我的代码:
- 我的一些样式是通用的(适用于任何地方)
- 有些仅适用于某些屏幕尺寸:
- 小;
- 中等;
- 大;
- 特大号。
- 有些适用于某些屏幕尺寸组:
- 除小型(非移动样式)外的所有内容;
- 小型和中型(侧边栏不在侧边)
- large 和 xlarge(您确实有侧边栏)
我试图通过在现有 CSS 文件中分散媒体查询样式来解决这个问题。 breakpoint Compass 扩展有很大帮助,但是样式表变得太乱了。当文件结构中没有描绘出某种风格时,要找到一种风格会很痛苦。
我尝试按媒体查询分组,然后按元素和功能分组。但是文件结构是二维的,所以你不能添加新的维度,你只能添加另一个层次结构。所以,并不优雅。而且,它非常笨重。
所以我最终得到了一个 2D 结构,一个轴上有媒体查询,而另一个轴上有元素和功能的丑陋组合。
我对此绝对不满意,但我只是未能提出一个优雅的解决方案。请推荐一个。
【问题讨论】:
-
是的。我同意这是一个大问题。但问题是什么?
-
@Bosworth99 问题是:请提出一个优雅的解决方案。
标签: css coding-style sass less