当前位置: 首页 > 面试题库 >

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

凌宏大
2023-03-14
问题内容

我正在测试像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解决方案

在这里查看支持;在大多数环境中,使用安全。

这利用了:

  • display: flex:以flexbox行为显示此元素
  • justify-content: center 将内部元素沿容器的主轴中心对齐
  • flex-wrap: wrap 确保内部元素自动包裹在容器中(不要脱离容器)

注意:与HTML和CSS一样,这只是获得所需结果的 多种 方法之一。在选择适合 您的 规格的方法之前,请彻底研究。

.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>

请注意,我已注释掉<div>s 之间的空白。由于元素现在已内联显示,因此将确认您的空格。这是“战斗空间” [的许多方法之一]。



 类似资料:
  • 问题内容: 我试图在此页面上将新闻滑块(位于div底部容器中)居中: http://www.luukratief- design.nl/dump/parallax/index.html 我已经有了 仍然不起作用。 有什么建议么? 问题答案: 在仅中心元素的 在线内容 ,而不是元素本身。 如果它是一个 块_元素(一个是),则需要设置;否则,如果它是一个[ _内联_元素],则需要在 _其父 元素上设置

  • 问题内容: 我有一个非常简单的问题,但似乎无法解决。我在div中有一个表格,这是主要元素。现在,我在表内有一个td标签,其宽度和高度设置为iphone屏幕尺寸。现在,我基本上要将该表及其td单元格放在div标签的中心,以便“屏幕”将在任何浏览器窗口中居中。我怎么做? 用表替换该div解决了我的问题,但我想改用div。 谢谢 问题答案: 试试这个,我做这个代码-演示在这里,非常简单的代码(我仅对IE

  • 问题内容: 我有一个宽度为100%的div。 我想将按钮居中放置,该怎么办? 问题答案: 更新的答案 由于我注意到这是一个积极的答案,所以进行了更新,但是Flexbox现在是正确的方法。 现场演示 垂直和水平对齐。 只是水平的(只要主伸缩轴是水平的,这是默认值) 使用固定宽度且没有flexbox的原始答案 如果原始海报想要垂直和居中对齐,则对于固定按钮的宽度和高度非常容易,请尝试以下操作 CSS

  • 问题内容: 我正在尝试制作一个小的用户名和密码输入框。 我想问一下,如何垂直对齐div? 我所拥有的是: 如何使ID为Username和Form的div垂直对齐中心?我试着把: 在CSS中用于ID为Login的div,但似乎不起作用。任何帮助,将不胜感激。 问题答案: 现代浏览器中最好的方法是使用flexbox: 某些浏览器将需要供应商前缀。对于不支持Flexbox的较旧的浏览器(例如IE9及更低

  • 问题内容: 我正在寻找一种将div 垂直居中放置在页面中间的方法。 在必须适应于屏幕的整个高度和宽度。的div有一个宽度和应在该页面(垂直中心)的中间。 我希望此页面的大屏幕适应屏幕的高度和宽度,并且容器垂直于大屏幕垂直居中。我该如何实现? 问题答案: 灵活的盒子方式 *现在,通过使用弹性框布局,*垂直对齐 非常简单。如今,除Internet Explorer8和9之外,各种Web浏览器都支持此方

  • 问题内容: 我想将居中。但是,事实并非如此。我只想找出原因以及如何使其居中。 问题答案: 您需要设置容器的宽度。(不起作用) MDN的CSS参考说明了这一切。