【问题标题】:css margin: auto issue in footerCSS边距:页脚中的自动问题
【发布时间】:2020-05-31 03:45:51
【问题描述】:

我的问题是将页脚栏中的空间分成 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% 之类的操作,这是行不通的。

感谢您的帮助

【问题讨论】:

    标签: html css margin footer listitem


    【解决方案1】:

    您可以使用 CSS 的 flex 属性来实现,我在下面添加了 sn-p。请检查:

    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> 

    【讨论】:

    • 通过这种方式,您不需要专门为子元素定义宽度。它会自动管理。
    • 对我来说几乎可以正常工作,但现在列表项 (ul li a) 与标题(公司、社交和文本 4)不相符。我怎样才能让它们左对齐?
    • 在检查 URL 之前很难提出任何建议。请提供任何链接,以便我检查并提供解决方案。
    • 它不是一个真正的网站,我只是喜欢学习它,所以我没有网址。
    【解决方案2】:

    尝试使用width: 33.33% 而不是margin-left: 33% 并将类应用于页脚的每三分之一。这会将页脚分成 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>

    【讨论】:

      【解决方案3】:

      我看到你的.footer-items 是display: flex;,你可以让它最近的孩子均匀成长。

      查看sn-p。 (你也可以删除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>

      【讨论】:

        【解决方案4】:

        您是否尝试过像这样使用display: grid。您可以为每个页脚项定义 3 列,并将其宽度设置为 1fr 或 1 个分数 grid-template-columns:1fr 1fr 1fr;。您还可以定义网格间隙来代替边距。

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-05-18
            • 1970-01-01
            • 2013-01-05
            • 1970-01-01
            • 2016-08-15
            • 2012-08-05
            相关资源
            最近更新 更多