排列块 div 引导程序 3 - col



我只是不明白如何排列块,以便 col-sm-3 在两侧,col-sm-6 在中心,但 html 代码应该这样。

<div class="col-sm-6" style="background-color:red; color:#fff;">center</div>
<div class="col-sm-3 pull-left" style="background-color:blue; color:#fff;">left</div>
<div class="col-sm-3 pull-right" style="background-color:green; color:#fff;">right</div>

代码本身是

<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<div class="col-sm-6" style="background-color:red; color:#fff;">center</div>
<div class="col-sm-3 pull-left" style="background-color:blue; color:#fff;">left</div>
<div class="col-sm-3 pull-right" style="background-color:green; color:#fff;">right</div>
</div>
</body>
</html>

Bootstrap V3 使用 float,因此列已保持浮动状态,因此只有pull-right才会起作用。

那么为什么不简单地更改顺序并且不要忘记容器内的行(我更改了smxs,以便我们可以在减少的片段中看到结果)

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<div class="container">
<div class="row">
<div class="col-xs-3" style="background-color:blue; color:#fff;">left</div>
<div class="col-xs-6" style="background-color:red; color:#fff;">center</div>
<div class="col-xs-3" style="background-color:green; color:#fff;">right</div>
</div>
</div>

如果你想保留相同的代码,请考虑升级到引导程序的 V4,在那里你可以用 flex 和 order 轻松处理这个问题:

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
<div class="container">
<div class="row">
<div class="col-6 order-2" style="background-color:red; color:#fff;">center</div>
<div class="col-3 order-1" style="background-color:blue; color:#fff;">left</div>
<div class="col-3 order-3" style="background-color:green; color:#fff;">right</div>
</div>
</div>


顺便说一下,您可以使用 V3 和您的初始代码添加一些自定义 CSS 来实现您想要的,但我不建议(仅在您无法进行任何更改的情况下使用):

.custom {
display: inline-block;
float: none!important;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<div class="container">
<div class="row">
<div class="col-xs-6 custom" style="background-color:red; color:#fff;">center</div>
<div class="col-xs-3 pull-left" style="background-color:blue; color:#fff;">left</div>
<div class="col-xs-3 pull-right" style="background-color:green; color:#fff;">right</div>
</div>
</div>

由于您不想更改 HTML,因此您可以使用col-push的概念和引导程序的col-pull3

注意:请记住使用父类来防止col-*类中的全局更改。我在这里使用了一个类change作为参考

.change .col-xs-6 {
left: 25%;
}
.change .row .col-xs-3:not(:last-child) {
right: 50%;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<div class="container change">
<div class="row">
<div class="col-xs-6" style="background-color:red; color:#fff;">center</div>
<div class="col-xs-3 pull-left" style="background-color:blue; color:#fff;">left</div>
<div class="col-xs-3 pull-right" style="background-color:green; color:#fff;">right</div>
</div>
</div>

或者在任何情况下,如果您可以更改我建议使用col-pushcol-pull的 HTML 或只是将其按顺序排列

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<div class="container change">
<div class="row">
<div class="col-xs-6 col-xs-push-3" style="background-color:red; color:#fff;">center</div>
<div class="col-xs-3 col-xs-pull-6" style="background-color:blue; color:#fff;">left</div>
<div class="col-xs-3" style="background-color:green; color:#fff;">right</div>
</div>
</div>

相关内容

最新更新