css 边距:在页脚中自动发布

css margin: auto issue in footer

我的问题是将页脚栏中的 space 分成 3 部分(每个部分具有相同的宽度)

footer {
  width: 100%;
  /*breite: 100%*/
  padding: 0;
  margin: 0;
  background-color: darkcyan;
  /*Hintergrundfarbe*/
  margin-bottom: 0;
  bottom: 0;
}

.footer-items {
  width: 80%;
  margin: auto;
  display: flex;
  /*bringt alle Teile in eine Linie*/
  text-align: center;
  /*zentriert ganzen Text im footer*/
}
<div class="footer-items">

  <div class="company-items">
    <h3 class="company">Company</h3>
    <ul>
      <li><a href="text1.html">Text1</a></li>
      <li><a href="text2.html">Text2</a></li>
      <li><a href="text3.html">Text3</a></li>
    </ul>
  </div>

  <div class="social-items">
    <h3 class="social">Social</h3>
    <ul>
      <li><a>Twitter</a></li>
      <li><a>Instagram</a></li>
      <li><a>Reddit</a></li>
    </ul>
  </div>

  <div class="other-items">
    <h3 class="text">Text4</h3>
    <ul>
      <li><a>other1</a></li>
      <li><a>other2</a></li>
    </ul>
  </div>

</div>

如果我尝试对页脚中的 3 个项目执行类似 margin-left: 33% 的操作,这是行不通的。

感谢您的帮助

您可以使用 CSS 的 flex 属性来完成,我在下面添加了代码片段。请检查:

footer{
            width: 100%; /*breite: 100%*/
            padding: 0;
            margin: 0;
            background-color: darkcyan; /*Hintergrundfarbe*/
            margin-bottom: 0;
            bottom: 0;
          }

          .footer-items{
            width: 80%;
            margin: auto;
            display: flex; /*bringt alle Teile in eine Linie*/
            text-align: center; /*zentriert ganzen Text im footer*/
            flex-direction: row;
            justify-content: space-between;
            align-items: flex-start;
          }

          .footer-items .company-items, .footer-items .social-items, .footer-items .other-items {
            display: block;
            width: 100%;
            text-align: left;
          }
    <div class="footer-items">
        <div class="company-items">
          <h3 class="company">Company</h3>
            <ul>
              <li><a href="text1.html">Text1</a></li>
              <li><a href="text2.html">Text2</a></li>
              <li><a href="text3.html">Text3</a></li>
            </ul> 
        </div>

        <div class="social-items">
          <h3 class="social">Social</h3>
            <ul>
              <li><a>Twitter</a></li>
              <li><a>Instagram</a></li>
              <li><a>Reddit</a></li>
            </ul>
        </div>

        <div class="other-items">
          <h3 class="text">Text4</h3>
            <ul>
              <li><a>other1</a></li>
              <li><a>other2</a></li>
            </ul>
        </div>
  </div> 

尝试使用 width: 33.33% 而不是 margin-left: 33% 并将 class 应用于页脚的每个三分之一。这会将页脚分成 3 列:

.footer {
  width: 100%;
  /*breite: 100%*/
  padding: 0;
  margin: 0;
  background-color: darkcyan;
  /*Hintergrundfarbe*/
  margin-bottom: 0;
  bottom: 0;
}

.footer-column {
  float: left;
  width: 33.33%;
}
<div class="footer">

  <div class="footer-column">
    <h3 class="company">Company</h3>
    <ul>
      <li><a href="text1.html">Text1</a></li>
      <li><a href="text2.html">Text2</a></li>
      <li><a href="text3.html">Text3</a></li>
    </ul>
  </div>

  <div class="footer-column">
    <h3 class="social">Social</h3>
    <ul>
      <li><a>Twitter</a></li>
      <li><a>Instagram</a></li>
      <li><a>Reddit</a></li>
    </ul>
  </div>

  <div class="footer-column">
    <h3 class="text">Text4</h3>
    <ul>
      <li><a>other1</a></li>
      <li><a>other2</a></li>
    </ul>
  </div>

</div>

我看到你的 .footer-itemsdisplay: flex;,你可以让它最近的 children 均匀增长。

查看代码段。 (你也可以删除 text-align: center;

footer {
  width: 100%;
  /*breite: 100%*/
  padding: 0;
  margin: 0;
  background-color: darkcyan;
  /*Hintergrundfarbe*/
  margin-bottom: 0;
  bottom: 0;
}

.footer-items {
  width: 80%;
  margin: auto;
  display: flex;
  /*bringt alle Teile in eine Linie*/
  /*text-align: center;*/
  /*zentriert ganzen Text im footer*/
}

.footer-items > div {
  flex-grow: 1;
}
<div class="footer-items">

  <div class="company-items">
    <h3 class="company">Company</h3>
    <ul>
      <li><a href="text1.html">Text1</a></li>
      <li><a href="text2.html">Text2</a></li>
      <li><a href="text3.html">Text3</a></li>
    </ul>
  </div>

  <div class="social-items">
    <h3 class="social">Social</h3>
    <ul>
      <li><a>Twitter</a></li>
      <li><a>Instagram</a></li>
      <li><a>Reddit</a></li>
    </ul>
  </div>

  <div class="other-items">
    <h3 class="text">Text4</h3>
    <ul>
      <li><a>other1</a></li>
      <li><a>other2</a></li>
    </ul>
  </div>

</div>

你试过像这样使用display: grid吗?您可以为每个页脚项定义 3 列,并为其指定宽度 1fr 或 1 个分数 grid-template-columns:1fr 1fr 1fr;。您还可以定义网格间隙而不是边距。

将 div 个元素的宽度设为 33.33%((100%)/列数)并设置左右边距为 0px。

footer {
  width: 100%;
  /*breite: 100%*/
  padding: 0;
  margin: 0;
  background-color: darkcyan;
  /*Hintergrundfarbe*/
  margin-bottom: 0;
  bottom: 0;
}

.footer-items {
  width: 100%;
  margin: auto;
  margin-right:0px;
  margin-left:0px;
  display: flex;
  /*bringt alle Teile in eine Linie*/
  text-align: center;
  /*zentriert ganzen Text im footer*/
}

.div-box{
  width:33.33%;
}
<div class="footer-items">

  <div class="company-items div-box">
    <h3 class="company">Company</h3>
    <ul>
      <li><a href="text1.html">Text1</a></li>
      <li><a href="text2.html">Text2</a></li>
      <li><a href="text3.html">Text3</a></li>
    </ul>
  </div>

  <div class="social-items div-box">
    <h3 class="social">Social</h3>
    <ul>
      <li><a>Twitter</a></li>
      <li><a>Instagram</a></li>
      <li><a>Reddit</a></li>
    </ul>
  </div>

  <div class="other-items div-box">
    <h3 class="text">Text4</h3>
    <ul>
      <li><a>other1</a></li>
      <li><a>other2</a></li>
    </ul>
  </div>

</div>