Bootstrap 4布局,一个宽度固定列

时间:2017-09-07 18:07:06

标签: html css twitter-bootstrap

这是我的HTML代码:

<div class="container-fluid d-flex h-100">
  <div class="white h-100" style="background-color: white;">
    fixed 100px
  </div>
  <div class="col-3 blue h-100" style="background-color: blue;">
    3
  </div>
  <div class="col-6 red h-100" style="background-color: red;">
    6
  </div>
  <div class="col-3 blue h-100" style="background-color: blue;">
    3
  </div>
</div>

您能帮我修改一下我的代码吗?我需要在左侧柱上固定宽度,这将是100px。此列未调整大小。我需要的其余空间应该以1:2:1的比例动态调整。感谢您的帮助。

4 个答案:

答案 0 :(得分:14)

bootstrap 4中有一个内置解决方案。

试试这个;

<div class="container">
    <div class="row">
        <div class="col-12 col-md">
            content
        </div>
        <div class="col-12 col-md-auto">
            <div style="background: red; width: 300px;">
                sidebar
            </div>
        </div>
    </div>
</div>

演示:https://www.bootply.com/WiegnnJbxX

答案 1 :(得分:10)

@Denis Stephanov,您可以使用以下css规则创建一个不会缩小或增长且具有固定宽度的弹性项目:

.flex-fixed-width-item {
    flex: 0 0 100px;
}

这是flex-growflex-shrinkflex-basis的简写。您可以在此CSS-Tricks article中详细了解这些属性。

将该类添加到固定宽度列:

<div class="container-fluid d-flex h-100">
  <div class="white h-100 flex-fixed-width-item" style=" background-color: white;">
    fixed 100px
  </div>
  ...

然后保持柱比相同:

  ...
  <div class="col-2 blue h-100" style="background-color: blue;">
    2
  </div>
  <div class="col-4 red h-100" style="background-color: red;">
    4
  </div>
  <div class="col-2 blue h-100" style="background-color: blue;">
    2
  </div>
</div>

您将获得所请求的结果,您可以在此codeply project中查看。

答案 2 :(得分:4)

Bootstrap 4将其内置到其布局组件中。

<div class="container">
  <div class="row">
    <div class="col-4">
      <!-- Set Width Column -->
    </div>
    <div class="col">
      <!-- Variable Width Column -->
    </div>
  </div>
</div>

参考:https://getbootstrap.com/docs/4.0/layout/grid/#setting-one-column-width

如果您希望您的设置宽度列具有固定的像素宽度,则可以省略.col-4并添加自定义像素宽度类。

<div class="container">
  <div class="row">
    <div class="col-pixel-width-100">
      <!-- Set Width Column -->
    </div>
    <div class="col">
      <!-- Variable Width Column -->
    </div>
  </div>
</div>

// style.css
.col-pixel-width-100 { flex: 0 0 100px; }

答案 3 :(得分:0)

这些答案都不能解决我面临的问题。 我想出了一个解决方案: (它无效但有效。)

.my-fixed-col{
  width: 150px;
}

.my-fluid-col{
  width: calc(100% - 150px);
}

/***/
*{
  margin: 0;
  padding: 0;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" />

<div class="container-fluid d-flex p-0 m-0">
  <div class="row p-0 m-0 w-100">
    
    <div class="my-fixed-col bg-primary text-white p-1">
        150px fixed column
    </div>
    
    <div class="my-fluid-col bg-danger text-white p-1">
        fluid column
    </div>
  
  </div>
</div>