Twitter的Bootstrap 3.x语义移动网格

how*_*his 9 less twitter-bootstrap twitter-bootstrap-3

阅读新的(未完成)后引导3文档我想知道如何创建语义网格移动.

简而言之.如何转换这个:

<div class="row">
  <div class="col col-lg-6 col-sm-6">6</div>
  <div class="col col-lg-6 col-sm-6">6</div>
</div>
Run Code Online (Sandbox Code Playgroud)

为此并保留小型移动网格:

<div class="wrapper">
  <div class="left">6</div>
  <div class="right">6</div>
</div>
Run Code Online (Sandbox Code Playgroud)

减

.wrapper {  .make-row(); }
.left    { .make-column(6); // this creates only large grid }
.right   { .make-column(6); }
Run Code Online (Sandbox Code Playgroud)

Gra*_*avy 11

第1部分:咆哮

我讨厌使用html div类作为HTML表示层的bootstrappers!我赞赏你希望正确地为你的网站编程.

这让我想起了90年代和21世纪初,当时我们都在建造带桌子的网站......我们是向后退人吗?

<div class="col-6 col-lg-6 col-sm-6">6</div>
<div class="col-6 col-lg-6 col-sm-6">6</div>
Run Code Online (Sandbox Code Playgroud)

VS

<table><tr><td>6</td><td>6</td></tr></table>
Run Code Online (Sandbox Code Playgroud)

我正在等待谷歌对非语义标记进行处罚的那一天.

第2部分:解决方案

无论如何,把这回到问题上......

对于bootstrap 3,据我所知,你不能使用.make-column(6)等...按照Bass Jobsen的回答,因为你需要指定窗口/屏幕的大小.lg/ md/ sm/xs

我就是这样做的......

main.less

@import 'bootstrap.less';

.wrapper {
    .container;
    .make-row();
    .clearfix();
}

.content-main { // Change these for each window size
  .make-lg-column(6);
  .make-md-column(6);
  .make-sm-column(6);
  .make-xs-column(6);
}
.content-sidebar { // change these for each window size
  .make-lg-column(6);
  .make-md-column(6);
  .make-sm-column(6);
  .make-xs-column(6);
}
Run Code Online (Sandbox Code Playgroud)

的index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Page Title</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta charset="UTF-8">
    <style rel="stylesheet/less" src="less/main.less" />
    <script src="js/less-1.4.1.min.js" type="text/javascript"></script>

    <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>

    <script src="assets/js/html5shiv.js"></script>
    <script src="assets/js/respond.min.js"></script>
    <![endif]-->   
</head>
<body>
    <div class="wrapper">
        <div class="content-main">
            <div class="page-title">
                <!-- Page Title Stuff -->
            </div>
            <div class="page-content">
                <!-- Page Content Stuff -->
            </div>
        </div>
        <div class="content-sidebar"><!-- Page Footer Stuff --></div>
    </div>  
</body>
Run Code Online (Sandbox Code Playgroud)

  • 这个答案使用了Bootstrap提供的mixins,这很好.我会谨慎地将`.container`和`.make-row`放在同一个元素上,因为它们有不同的边距(容器的自动边距,以及行的沟槽尺寸的一半的负边距).因此,您的行应放在任何容器内. (3认同)

Bas*_*sen 4

如果我很好地理解你的问题,我认为你应该使用:

\n\n


\n <div class="row">\n <div class="col-span-6 col-small-span-6\xe2\x80\xb3>6</div>\n <div class="col-span-6 col-small-span-6\xe2\x80\xb3>6</div>\n </div>\n

\n\n

大网格和小网格的col-span-6班级在哪里?col-small-span-6如果你离开col-small-span-6你的 div 将会堆叠。小网格不使用这些col-span-*类。

\n\n

另请参阅:http://bassjobsen.weblogs.fm/migrate-your-templates-from-twitter-bootstrap-2-x-to-twitter-bootstrap-3/

\n\n

从现在开始,Twitter\xe2\x80\x99s Bootstrap 定义了三个网格:用于手机的微型网格 (<480px)、用于平板电脑的小型网格 (<768px) 和用于 Destkops 的中大型网格 (>768px)。这些网格的行类前缀为 \xe2\x80\x9c.col-\xe2\x80\x9d、\xe2\x80\x9c.col-sm-\xe2\x80\x9d 和 \xe2\x80\x9c.col -lg-\xe2\x80\x9d。中大型网格将堆叠在 768 像素屏幕宽度以下。低于 480 像素的小网格也是如此,并且小网格从不堆叠。

\n\n

所以你的 html 应该是:

\n\n
<div class="row">\n  <div class="col-6 col-lg-6 col-sm-6">6</div>\n  <div class="col-6 col-lg-6 col-sm-6">6</div>\n</div>\n
Run Code Online (Sandbox Code Playgroud)\n\n

LESS \n最新版本:https://github.com/twitter/bootstrap/archive/3.0.0-wip.zip不再包含 .make-small-column 函数。另请参阅: https: //github.com/twbs/bootstrap/pull/8302 .make-column() 将为最小宽度添加媒体查询:@grid-float-breakpoint,因此在小网格上,您的列将始终堆叠使用此功能。

\n\n

你可以尝试:

\n\n
// Generate the small columns\n.make-small-column(@columns) {\n  position: relative;\n  float: left;\n  // Prevent columns from collapsing when empty\n  min-height: 1px;\n  // Inner gutter via padding\n  padding-left:  (@grid-gutter-width / 2);\n  padding-right: (@grid-gutter-width / 2);\n  @max : (@grid-float-breakpoint - 1 );\n  // Calculate width based on number of columns available\n  @media (max-width: @max) {\n    width: percentage((@columns / @grid-columns));\n  }\n}\n\n.wrapper {  .make-row(); }\n.left    { .make-column(6); .make-small-column(6);}\n.right   { .make-column(6); .make-small-column(6);}\n
Run Code Online (Sandbox Code Playgroud)\n\n

更新

\n\n

上面的答案将基于 Twitter 的 Bootstrap 3 的候选版本。Twitter 的 Bootstrap 3 的最终版本有 4 个网格:特小 (xs)、小 (sm)、中 (md) 和大 (lg) )。此外,Less 代码也根据这些网格进行了更改。因此,请使用 .make-{x}-column mixin,如 @gravy 在他的回答中所述:/sf/answers/1306756881/

\n