Foundation 网格嵌套与列偏移

一、网格嵌套(Nested Grid)

网格嵌套是指在一个列(columns)内部,再嵌入一个新的 rowcolumns 结构,实现更复杂的布局。

嵌套规则

  • .row 内部只能直接包含.columns<div>
  • .columns 内部可以包含新的 .row
  • 新的 .row 内部再次使用 .columns

嵌套示例

<div class="row">
    <div class="small-8 columns">
        .small-8
        <div class="row">
            <div class="small-8 columns">
                .small-8 Nested
                <div class="row">
                    <div class="small-8 columns">.small-8 Nested Again</div>
                    <div class="small-4 columns">.small-4</div>
                </div>
            </div>
            <div class="small-4 columns">.small-4</div>
        </div>
    </div>
    <div class="small-4 columns">.small-4</div>
</div>Code language: HTML, XML (xml)

以上示例展示了三层嵌套:外层 8+4 布局,中层 8+4 布局,内层再次 8+4 布局。


二、列偏移(Column Offset)

列偏移用于将某一列向右推移指定的列数,左侧会留出空白间距。

使用以下类控制偏移量:

  • .small-offset-*(手机端)
  • .medium-offset-*(平板端)
  • .large-offset-*(桌面端)

* 为偏移的列数,基于 12 列栅格系统。

列偏移示例

<div class="row">
    <div class="large-1 columns" style="background-color:red;">1</div>
    <div class="large-11 columns" style="background-color:green;">11</div>
</div>

<div class="row">
    <div class="large-1 columns" style="background-color:red;">1</div>
    <div class="large-10 large-offset-1 columns" style="background-color:green;">10, offset 1</div>
</div>

<div class="row">
    <div class="large-1 columns" style="background-color:red;">1</div>
    <div class="large-9 large-offset-2 columns" style="background-color:green;">9, offset 2</div>
</div>

<div class="row">
    <div class="large-1 columns" style="background-color:red;">1</div>
    <div class="large-8 large-offset-3 columns" style="background-color:green;">8, offset 3</div>
</div>Code language: HTML, XML (xml)

偏移后,列左侧会留出对应列数的空白区域,常用于居中布局或右侧内容对齐。


三、完整可运行示例

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Foundation 网格嵌套与列偏移</title>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="foundation-5.5.3/css/foundation.css" rel="stylesheet" />
    <script src="foundation-5.5.3/js/vendor/jquery.js"></script>
    <script src="foundation-5.5.3/js/foundation.min.js"></script>
    <script src="foundation-5.5.3/js/vendor/modernizr.js"></script>
    <script>
        $(document).ready(function () {
            $(document).foundation();
        })
    </script>
    <style>
        .columns {
            border: 1px solid #ccc;
            text-align: center;
            padding: 10px;
            color: #fff;
        }
    </style>
</head>
<body>

<div class="row">
    <div class="medium-12 columns">
        <h3>网格嵌套示例</h3>
        <div class="row">
            <div class="small-8 columns" style="background-color:#333;">
                .small-8
                <div class="row">
                    <div class="small-8 columns" style="background-color:#666;">
                        .small-8 Nested
                        <div class="row">
                            <div class="small-8 columns" style="background-color:#999;">.small-8 Nested Again</div>
                            <div class="small-4 columns" style="background-color:#bbb; color:#333;">.small-4</div>
                        </div>
                    </div>
                    <div class="small-4 columns" style="background-color:#999;">.small-4</div>
                </div>
            </div>
            <div class="small-4 columns" style="background-color:#555;">.small-4</div>
        </div>

        <hr />

        <h3>列偏移示例</h3>
        <div class="row">
            <div class="large-1 columns" style="background-color:red;">1</div>
            <div class="large-11 columns" style="background-color:green;">11</div>
        </div>
        <div class="row">
            <div class="large-1 columns" style="background-color:red;">1</div>
            <div class="large-10 large-offset-1 columns" style="background-color:green;">10, offset 1</div>
        </div>
        <div class="row">
            <div class="large-1 columns" style="background-color:red;">1</div>
            <div class="large-9 large-offset-2 columns" style="background-color:green;">9, offset 2</div>
        </div>
        <div class="row">
            <div class="large-1 columns" style="background-color:red;">1</div>
            <div class="large-8 large-offset-3 columns" style="background-color:green;">8, offset 3</div>
        </div>
    </div>
</div>

</body>
</html>Code language: HTML, XML (xml)

四、小结

网格嵌套

  • .row 内部只能直接放 .columns
  • .columns 内部可以嵌套新的 .row
  • 嵌套层级不限,每一层都基于 12 列重新计算

列偏移

  • 使用 .small-offset-* / .medium-offset-* / .large-offset-* 控制
  • 偏移列数 * 范围为 1–11
  • 偏移后原列右侧内容自动重新排列
  • 常用于居中、右侧对齐、留白布局

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注