我display:inline-block
在div中text-align:center
设置了一堆相同大小的块,该div 设置为对齐块。
| _____ _____ _____ _____ |
| | | | | | | | | |
| | 1 | | 2 | | 3 | | 4 | |
| |_____| |_____| |_____| |_____| |
| _____ _____ _____ _____ |
| | | | | | | | | |
| | 5 | | 6 | | 7 | | 8 | |
| |_____| |_____| |_____| |_____| |
| |
这些块会水平填充div,并且随着浏览器窗口的缩小,一些块会换行,从而创建更多的行和更少的列。我希望所有内容仍保持居中,最后一行对齐到左侧,如下所示:
| _____ _____ _____ |
| | | | | | | |
| | 1 | | 2 | | 3 | |
| |_____| |_____| |_____| |
| _____ _____ _____ |
| | | | | | | |
| | 4 | | 5 | | 6 | |
| |_____| |_____| |_____| |
| _____ _____ |
| | | | | |
| | 7 | | 8 | |
| |_____| |_____| |
| |
当前发生的情况是:
| _____ _____ _____ |
| | | | | | | |
| | 1 | | 2 | | 3 | |
| |_____| |_____| |_____| |
| _____ _____ _____ |
| | | | | | | |
| | 4 | | 5 | | 6 | |
| |_____| |_____| |_____| |
| _____ _____ |
| | | | | |
| | 7 | | 8 | |
| |_____| |_____| |
| |
我不能像一个建议那样添加额外的填充div,因为可以有任意数量的块,并且行和列的数量将根据浏览器的宽度而变化。由于相同的原因,我也不能直接设置第7块的样式。无论有多少列,块都
必须始终保持居中 。
这可能吗?我觉得肯定应该。我宁愿不要使用flexbox,因为它只有ie10 +,我想使用ie9
+。我真的很想要一个纯CSS解决方案,但是如果您告诉我JS是唯一的方法,那么我很乐意看到它的实际效果。
这是一个非常简单的JavaScript(以及CSS中的一些小更改)解决方案:
对我来说很好。
CSS:
.container {
margin: 0 auto;
max-width:960px;
background-color: gold;
}
.block {
background-color: #ddd;
border:1px solid #999;
display: block;
float: left;
height: 100px;
margin: 4px 2px;
width: 100px;
}
JavaScript:
$(document).ready(function(){
setContainerWidth();
});
$(window).resize(function(){
setContainerWidth();
});
function setContainerWidth()
{
$('.container').css('width', 'auto'); //reset
var windowWidth = $(document).width();
var blockWidth = $('.block').outerWidth(true);
var maxBoxPerRow = Math.floor(windowWidth / blockWidth);
$('.container').width(maxBoxPerRow * blockWidth);
}
jQuery是必需的:)
问题内容: 我正在使用CSS网格来布局这样的某些项目… 如何使最后一行居中而不是左对齐?我不能保证项目的数量,因此想要使布局适合任何数量的项目。 这是我应该使用flexbox代替的东西吗?还是CSS网格适合使用? 问题答案: CSS Grid不适合在整行中对齐,因为纵横交错的轨道阻碍了这种方式。以下是详细说明: 或者,将flexbox与一起使用。 这会将所有项目打包在该行的水平中心。然后,您的利润
我想在中间对齐和。 如何使完全向右移动? 以前: 之后: https://jsfiddle.net/z44p7bsx/
我试图将底部两个li项(下图中的餐厅信息容器)集中在设置为显示:网格的ul列表中。我原以为添加到ul列表规则集会起作用,但它没有。我还尝试了,它没有改变任何东西。是否有一个解决方案,与CSS网格,将项目在最后一行?
我在fxml中有一个GridPane,它有一个文本标题和4个按钮。GridPane本身是居中对齐的,但所有按钮都在网格的列内左对齐。我知道如何使用Java代码更改项目的对齐方式,但这不是理想的情况,因为我希望所有样式都使用FXML和CSS处理。有谁能建议在JavaFX的GridPane视图中居中对齐单元格元素的最佳方法吗?
我有一个Flexbox。它的内容是NxN个正方形。我想要容器适合尽可能多的这些方块给定的显示宽度。我想让flexbox在页面中对齐。 然而问题是当我使用 则最后一行不向左对齐。但是,如果我更改为 则整个容器在页面上不再以中心对齐的方式显示。我能以某种方式实现两个的混合吗,所以就是这个例子,我将对齐5个项目,但最后一行将对齐前几行中的第一个项目? 最小再现:
我有一个简单的flex-box布局,其中有一个容器,如: 现在我希望最后一行中的项目与另一行对齐。应该使用,因为网格的宽度和高度可以调整。 目前看来