我在构建一个规模的项目时遇到了同样的问题。所以答案是否定的。
因为它会打破最重要的规则——它的模块独立性。正确的方法是使用module-mediator
. 我有一个类似的任务 - 将网格与模块分开,这样我就可以将模块排列成列。我创建了一个名为m-list
with elements的模块m-list-cell
。
因此,在您的情况下,我将遵循相同的方式-在模块内部,我将使用百分比几何而不是px
,并使用一些调解器将几何设置为带有模块的容器。
这是一个例子:
让我们构建布局。让它成为简单的 2 列页面。
<div class="l-container">
<div class="l-grid l-grid_10">
<!-- MAIN CONTENT -->
</div>
<div class="l-grid l-grid_2">
<!-- SIDEBAR -->
</div>
</div>
所以下一步 - 将 N 列列表放在主要内容区域内:
<div class="l-container">
<div class="l-grid l-grid_10">
<ul class="m-list m-list_4cols">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
</div>
</div>
现在关于m-list:它是我们的魔杖 - 它的任务区域与列分开:
.m-list{
width: 100%;
}
.m-list:after{
content: "";
display: block;
clear: both;
}
.m-list li {
float: left;
box-sizing: border-box;
}
/* Lets define 4 columns view. We can scale it in depends of our needs */
.m-list_4cols li {
width: 25%;
}
/*
Also we can use @media rules to reach adaptive behavior
you can use additional class like **.m-list_Ncols_onsmall** to change columns number.
You can also scale modificators set according to your needs.
*/
@media only screen and (max-width: 520px) {
.m-list .m-list_1col_onsmall li {
width: 100%;
}
.m-list .m-list_2cols_onsmall li {
width: 50%;
}
.m-list .m-list_3cols_onsmall li {
width: 33.33%;
}
}
您可以签出Foundation block grid。它是这种中介模块的一个很好的例子