我这里有一个有效的代码:http://jsfiddle.net/WVm5d/(您可能需要将结果窗口放大才能看到居中对齐效果)

Question

代码很好用,但我不喜欢display: table;.这是我唯一能让包裹类对齐中心的方法.我认为如果有办法使用display: block;display: inline-block;会更好.有没有可能用另一种方法求解"对齐中心"?

对我来说,向容器中添加固定with不是一个选项.

I will also paste my code here if the JS Fiddle link gets broken in the future:

body {
    background: #bbb;
}

.wrap {
    background: #aaa;
    margin: 0 auto;
    display: table;
    overflow: hidden;
}

.sidebar {
    width: 200px;
    float: left;
    background: #eee;
}

.container {
    margin: 0 auto;
    background: #ddd;
    display: block;
    float: left;
    padding: 5px;
}

.box {
    background: #eee;
    border: 1px solid #ccc;
    padding: 10px;
    margin: 5px;
    float: left;
}

.box:nth-child(3n+1) {
    clear: left;
}
<div class="wrap">
    <div class="sidebar">
        Sidebar
    </div>
    <div class="container">
        <div class="box">
            Height1
        </div>
        <div class="box">
            Height2<br />
            Height2
        </div>
        <div class="box">
            Height3<br />
            Height3<br />
            Height3
        </div>
        <div class="box">
            Height1
        </div>
        <div class="box">
            Height2<br />
            Height2
        </div>
        <div class="box">
            Height3<br />
            Height3<br />
            Height3
        </div>
    </div>
    <div class="sidebar">
        Sidebar
    </div>
</div>

推荐答案

接受的解决方案对我不起作用,因为我需要一个display: inline-block的子元素在display: inline-block%宽度的父元素中水平和垂直居中.

我使用了Flexbox的justify-contentalign-items属性,它们分别允许您将元素水平和垂直居中.通过在父元素上将两者都设置为center,子元素(甚至可以是多个元素!)将完美地夹在中间.

此解决方案不需要固定宽度,这对我来说不合适,因为我的按钮文本会发生变化.

Here is a CodePen demo和下面的相关代码片段:

.parent {
  display: flex;
  justify-content: center;
  align-items: center;
}
<div class="parent">
  <a class="child" href="#0">Button</a>
</div>

Css相关问答推荐

如何为FLEX方向编写响应式的CSS

Astro网站在使用Astro Build构建后无法正常工作

CSS 内联 Flex 和段落换行

如何更改 JqGrid 中的pager 背景 colored颜色 ?

如何在 VS Code 中获得 JavaFX CSS 属性的自动完成功能?

如何使用 TailwindCSS 水平设置输入和按钮

内部和外部 div 之间的像素大小的间隙

如何应用适当样式的元素加消息框?

如何仅包装左侧内容

Ant Design:将位置子菜单移动到屏幕顶部

当我在几个月之间更改时,有什么方法可以在react-dates-range上添加淡入淡出或幻灯片效果?

使用 MUI 动态绘制多个边框

CSS类和id同名

如何从 表格单元格中创建链接

内联块在 Internet Explorer 7、6 中不起作用

在CSS中将文本和 Select 框对齐到相同的宽度?

悬停时如何在图像上显示文字?

如何使内容出现在固定的 DIV 元素下方?

go 除文本输入的内阴影

行高百分比不起作用