CSS:如何水平居中?

问题描述

再次,我对中心元素有问题。我有这个HTML / CSS:

<section class="btmfix">
  <div class="menurow">
    <div class="col">
      <a class="sml-btn" href="index.html">HOME</a>
    </div>
    <div class="col">
      <a class="sml-btn" href="about.html">ABOUT</a>
    </div>
    <div class="col">
      <a class="sml-btn" href="product.html">PRODUCT</a>
    </div>
    <div class="col">
      <a class="sml-btn" href="request.PHP">REQUEST</a>
    </div>
    <div class="col">
      <a class="sml-btn" href="contact.html">CONTACT</a>
    </div>
  </div>
</section>

  .menurow {
    height: auto;
    display: inline-block;
    margin: 0 auto;
    width: auto;
  }

  .btmfix {
    display: block;
    padding-bottom: 0px;
  }

  .col {
    padding: 0px;
    display: block;
  }

  .sml-btn {
    color: #000;
    text-decoration:none;
    background-color:#444;
    margin: 3px;
    width: 180px !important;
    /*  width:auto !important;*/
    padding: .3rem 1rem;
    font-size: 1.25rem;
    line-height: 1.5;
    border-radius: .3rem;
    display: inline-block;
    /*  font-weight: 00;*/
    text-align: center;
    vertical-align: middle;
    border: 1px solid #fff;
    cursor: pointer;
    text-transform: uppercase;
    text-shadow: 1px 0px #fff;
  }

https://jsfiddle.net/crapomat/pLt5j0sy/5/

我希望链接居中,但我不知道怎么做。我尝试了保证金:0自动方法,几乎​​在每个教程中都可以找到,但这在这里不起作用。你知道为什么吗?你能帮我吗?

提前谢谢

解决方法

要水平居中菜单,您需要在text-align: center;类上应用.col

这是工作示例:

.menurow {}

.btmfix {
    display: block;
    padding-bottom: 0px;
}

.col {
    padding: 0px;
    text-align: center;
}

  .sml-btn {
    color: #000;
    text-decoration:none;
    background-color:#444;
    margin: 3px;
    width: 180px !important;
    padding: .3rem 1rem;
    font-size: 1.25rem;
    line-height: 1.5;
    border-radius: .3rem;
    display: inline-block;
    text-align: center;
    vertical-align: middle;
    border: 1px solid #fff;
    cursor: pointer;
    text-transform: uppercase;
    text-shadow: 1px 0px #fff;
  }
<section class="btmfix">
  <div class="menurow">
    <div class="col">
      <a class="sml-btn" href="index.html">HOME</a>
    </div>
    <div class="col">
      <a class="sml-btn" href="about.html">ABOUT</a>
    </div>
    <div class="col">
      <a class="sml-btn" href="product.html">PRODUCT</a>
    </div>
    <div class="col">
      <a class="sml-btn" href="request.php">REQUEST</a>
    </div>
    <div class="col">
      <a class="sml-btn" href="contact.html">CONTACT</a>
    </div>
  </div>
</section>

,

如果您想将所有菜单组置于text-align:center;的中心,就足够了

  .btmfix {
    display: block;
    padding-bottom: 0px;
    width: 100%;
    text-align:center;
  }

如果您还想水平显示菜单,那么float:left;就足够了

.col {
    padding: 0px;
    display: block;
    float:left;
  }
,

这是给您width:0;menurow的问题,并将col添加到text-align:center

.menurow {
  width: 100%;
}
.col {
  text-align: center;
}