【问题标题】:Adaptive modules with SMACSS带有 SMACSS 的自适应模块
【发布时间】:2013-07-24 22:08:53
【问题描述】:

我在少数项目中使用 SMACSS,但通常面临一个问题 - 构建自适应内容模块的正确方法是什么。

例如,我有 LAYOUT 网格类(.container、.row、.span-1、.span-N)+ 用于自适应设计的媒体查询。

我想对内容模块使用相同的规则来管理自适应行为,例如将链接列表分成列:

<ul class="list">
  <li class="list-el"> item 1</li>
  <li class="list-el"> item 1</li>
  <li class="list-el"> item 1</li>
  <li class="list-el"> item 1</li>
</ul>

我可以将 LAYOUT 类添加到 MODULE 元素中,如下所示:

<ul class="list row">
    <li class="list-el span-3"> item 1</li>
    <li class="list-el span-3"> item 1</li>
    <li class="list-el span-3"> item 1</li>
    <li class="list-el span-3"> item 1</li>
</ul>

但是这种方法在 LAYOUT 和 MODULE 之间建立了紧密的耦合,打破了 SMACSS 的主要规则,该模块应该独立于 LAYOUT。

另一种方法是构建特殊模块(.adapt),并将内容模块放入其中:

<div class="adapt">
    <div class="adapt-span3">
        <ul class="list">
            <li class="list-el"> item 1</li>
            <li class="list-el"> item 1</li>
            <li class="list-el"> item 1</li>
            <li class="list-el"> item 1</li>
        </ul>
    </div>
    <div class="adapt-span3">
      <ul class="list"> ... </ul>
    </div>
    <div class="adapt-span3">
         <ul class="list"> ... </ul>
    </div>
    <div class="adapt-span3">
         <ul class="list"> ... </ul>
    </div>
</div>

这种方式不会违反规则,但 HTML 标记看起来很重。

那么问题 - 您在 SMACSS 中构建自适应内容模块的方式是什么?

【问题讨论】:

    标签: css adaptive-design


    【解决方案1】:

    经过一些讨论和案例研究后,我发现此类案例的正确方法是使用一些调解器块,例如带有项目宽度百分比的列表。因此,它可以帮助将 LAYOUT 与 MODULE 分开,使中介块可以用于不同的布局网格,并管理中介块和布局的不同自适应行为规则。

    【讨论】:

      猜你喜欢
      • 2015-10-01
      • 2014-04-17
      • 2014-05-24
      • 2014-09-03
      • 2017-11-07
      • 2019-04-11
      • 1970-01-01
      • 2017-02-17
      • 1970-01-01
      相关资源
      最近更新 更多