如何在 CSS 中将容器内的多个 div 居中

2024-06-02

我正在测试像 Windows Metro 风格的中心分隔线。

.container {
    height: 300px;
    width: 70%;
    background: #EEE;
    margin: 10px auto;
    position: relative;
}
.block {
    background: green;
    height: 100px;
    width: 100px;
    float: left;
    margin: 10px;
}
<div class="container">
  <div class="block">1. name of the company</div>
  <div class="block">2. name of the company</div>
  <div class="block">3. name of the company</div>
  <div class="block">4. name of the company</div>
  <div class="block">5. name of the company</div>
  <div class="block">6. name of the company</div>
  <div class="block">7. name of the company</div>
  <div class="block">8. name of the company</div>
</div>

灰色框为 70%,并且在屏幕上居中,这是正确的,但是当我将窗口变宽并且绿色分隔线移动时,您可以看到绿色框在某些点没有居中。

在这方面可以如何帮助我?


我之前的回答显示了一种坦率地说已经过时的方法(它仍然有效,只是有更好的方法来实现这一点)。因此,我正在更新它以包含更现代的内容,flexbox https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Flexbox解决方案。

查看对其的支持here https://caniuse.com/#feat=flexbox;在大多数环境下,可以安全使用。

这利用了:

  • display: flex https://developer.mozilla.org/en-US/docs/Web/CSS/display#display_flex:以 Flexbox 行为显示此元素
  • justify-content: center https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content将内部元件沿容器的主轴线居中对齐
  • flex-wrap: wrap https://developer.mozilla.org/en-US/docs/Web/CSS/flex-wrap确保内部元素自动包裹在容器内(不要脱离容器)

Note: As is usual with HTML & CSS, this is just one of many ways to get the desired result. Research thoroughly before you choose the way that's right for your specifications.

.container {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    width: 70%;
    background: #eee;
    margin: 10px auto;
    position: relative;
    text-align:center;
}

.block {
    background: green;
    height: 100px;
    width: 100px;
    margin: 10px;
}
<div class="container">
    <div class="block">1. name of the company</div>
    <div class="block">2. name of the company</div>
    <div class="block">3. name of the company</div>
    <div class="block">4. name of the company</div>
    <div class="block">5. name of the company</div>
    <div class="block">6. name of the company</div>
    <div class="block">7. name of the company</div>
    <div class="block">8. name of the company</div>
</div>

原答案

您可以应用该样式text-align:center;到您的容器并显示您的.blocks 作为内联块元素:

.container {
  width: 70%;
  background: #eee;
  margin: 10px auto;
  position: relative;
  text-align:center;
}

.block {
  background: green;
  height: 100px;
  width: 100px;
  display:inline-block;
  margin: 10px;
}
<div class="container">
   
        <div class="block">1. name of the company</div><!--
     --><div class="block">2. name of the company</div><!--
     --><div class="block">3. name of the company</div><!--
     --><div class="block">4. name of the company</div><!--
     --><div class="block">5. name of the company</div><!--
     --><div class="block">6. name of the company</div><!--
     --><div class="block">7. name of the company</div><!--
     --><div class="block">8. name of the company</div>
</div>

这是更新的Fiddle https://jsfiddle.net/s6e4navh/

请注意,我已经注释掉了您之间的空白<div>s。由于元素现在内联显示,因此您的空间将被确认。这是多种方法之一 https://css-tricks.com/fighting-the-space-between-inline-block-elements/来“对抗空间”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 CSS 中将容器内的多个 div 居中 的相关文章

  • 为民意调查结果创建彩色条

    在我的网络应用程序中 我想用彩色条显示民意调查结果 其长度与选票百分比成正比 如何使用 HTML CSS 实现此目的 该网站包含一些很好的示例 http apples to oranges com blog post css for bar
  • 如何在不使用 Flexbox 的情况下水平对齐元素?

    有没有一种方法可以在不使用的情况下将 Web 组件彼此相邻对齐Flexbox 我知道它是一个很棒的工具 但不幸的是它不适用于 IE 9 或 10 我希望链接内的文本显示在图像旁边 JSFiddle 显示了工作代码 但是使用 FlexBox
  • asp.net aspx 的标记验证

    我使用 asp net 创建了一个网站 在互联网上启动网站之前 我想对我使用的网络表单进行验证测试 我已经知道如何通过 W3C 标记验证服务来验证 HTML 静态网站 是否可以通过上传文件在 Webforms aspx 上执行相同的验证方法
  • HTML5 应用程序缓存:清单已更新,但文件再次从应用程序缓存中获取

    我有一个缓存清单 其中有注释 Version 3 2 为了更新所有应用程序 我只需更改版本号 它有效 但是 当我更新清单时 所有内容都会正确更新 新缓存已填充 但实际文件会从 旧 缓存中再获取一次 当我重新加载两次时 所有内容都会更新 这种
  • 在页面之间传递 javascript 变量[重复]

    这个问题在这里已经有答案了 可能的重复 跨页面保留 javascript 变量 https stackoverflow com questions 1981673 persist javascript variables across pa
  • 子 div 超出父 div 范围

    目前我正在使用 CSS 和 HTML 等设计一个网站 但是我遇到了一个问题 当我向子级添加浮动时 我的子级 div 超出了父级 div 的范围 该网站位于此处我的网页设计 http 7sisters in test mintbite 更加详
  • 删除 HTML5 离线应用程序缓存

    我有一个带有关联的应用程序缓存清单的 HTML 文档 但现在我想暂时摆脱离线应用程序缓存 如果我从清单中删除对清单的提及标签 已经有缓存版本的浏览器将继续使用该缓存版本 如果我更新应用程序缓存清单 无论如何 仍然有一个应用程序缓存 删除离线
  • jQuery Mobile 和文本区域行

    所以 我想展示一个textarea仅 1 行 但 jQuery Mobile 并不这么认为 无论我在rows属性 它始终是 2 行高度 请问有什么解决办法吗 jQuery Mobile CSS 设置了特定的高度textarea要素 text
  • 如何使用 Flex 创建自定义马赛克

    我正在尝试使用 Flex 创建一个自定义马赛克 如下所示 除了框 4 的高度和宽度加倍之外 所有框的宽度都是父容器的三分之一 我设法达到以下条件 push group element ul push group element ul li
  • 在 Javascript 中隐藏按钮

    在我最新的程序中 有一个按钮 单击时会显示一些输入弹出框 这些框消失后 如何隐藏按钮 You can set its visibility财产 http www w3schools com cssref pr class visibilit
  • 通过标记或JS强制下载

    假设我在 CDN 来自 Rackspace 的云文件 上有一个文件 以及一个包含该文件链接的静态 html 页面 有什么方法可以强制下载此文件 以防止它在浏览器中打开 例如 mp3 我们可以让我们的服务器读取该文件并将相应的标头设置为 he
  • 为什么视口宽度与实际显示宽度不匹配?

    Chrome 显示我的视口宽度为 1280px 然而 我的实际显示分辨率是2560x1600px 我使用的机器是13 3英寸的MacBook Pro 为什么视口不是 2560px 宽 使用没有任何区别 my display settings
  • Javascript CORS 图像/画布操作

    我正在尝试从另一个已配置为允许 CORS 的域检索图像 并操纵像素 然后我想显示结果并能够操纵结果 我可以在我请求的图像上使用 getImageData 和 toDataURL 所以我知道服务器部分可以工作 但是 当我尝试将图像的 src
  • CSS @import 及其顺序

    是否可以使用 importone像这样的 css 文件 import file1 some css here import file2 chrome 无法识别上述第二个导入 但这可以工作 import file1 import file2
  • 设置三个输入数字的最大值

    我有三个输入数字
  • 在 Bootstrap 选择器上使用 jQuery 取消选择选项

    我对一些 UI 元素使用 Bootstrap SelectPicker 它允许用户选择多个选项并将其呈现在段落标签中的屏幕上 他们还应该能够删除选定的选项 这是我的代码 用于将选定的选项渲染到屏幕上 以便每个选项旁边都会显示一个 X 单击它
  • 将“http://”添加到尚未包含“http://”的 URL 前面

    我有一个input保存 URL 的字段 我希望这个保存的输入能够识别变量开头不存在 Http 但不知道从哪里开始 是否可以仅检查字符串的一部分 然后有一个在必要时追加的函数 如果您还想允许 https 我会使用如下正则表达式 if http
  • css bootstrap 下拉菜单在 IE 中看起来不同

    我正在使用CSS引导程序3 2 0 http getbootstrap com css 然而 当在 IE 中查看该网站时 菜单选项周围有一个黑色边框 而且下拉菜单按钮看起来也有所不同 如果您查看该网站http getbootstrap co
  • 为什么变量 1 += 变量 2 比变量 1 = 变量 1 + 变量 2 快得多?

    我继承了一些 Python 代码 用于创建巨大的表 最多 19 列宽 5000 行 花了九秒用于在屏幕上绘制表格 我注意到每一行都是使用以下代码添加的 sTable sTable n GetRow where sTable是一个字符串 我将
  • 如何在网页上显示进度条直到网页完全加载?

    我想在网页中显示进度条 加载弹出窗口 直到页面完全加载 我的网页很重 因为它包含一个 HTML 编辑器 这是一个基于 jQuery 的 HTML 编辑器 需要很多时间才能完全加载 在加载时 我希望在页面上显示一个进度条 该进度条将在整个页面

随机推荐