当前位置:Gxlcms > css > CSS中五种方法实现导航菜单水平居中的实例详解

CSS中五种方法实现导航菜单水平居中的实例详解

时间:2021-07-01 10:21:17 帮助过:18人阅读

在网页设计中,水平导航菜单使用是十分广泛的,在CSS样式中,我们一般会用Float元素或是「display:inline-block」来解决。而今天主要讲解如何让未知宽度的元素居中,下面我们会列出几种方法来解决水平居中问题。当然这些方法不一定是用来解决导航菜单问题,还有其它类似情况也是可以使用的。

CSS导航菜单水平居中的多种方法:

  • 方法1:display:inline-block

  • 方法2:position:relative

  • 方法3:display:table

  • 方法4:display:inline-flex

  • 方法5:width:fit-content / width:intrinsic

方法1:display:inline-block

这个方法比较简单,是将容器转成「display:inline-block」行内块级元素,然后就可以直接用「text-align:center」使其达到水平居中效果。

HTML代码:

这里我们需要一个p来包围这个导航菜单。

  1. <p class="navbar">
  2. <ul>
  3. <li><a href="/">首页</a></li>
  4. </ul>
  5. </p>

CSS代码:

给外面的p添加「text-align:center」,然后将菜单容器设成「display:inline-block」行内块级元素,菜单浮左「float:left」

  1. .navbar {
  2. text-align:center;
  3. }
  4. .navbar ul {
  5. display:inline-block;
  6. }
  7. .navbar li {
  8. float:left;
  9. }
  10. .navbar li + li {
  11. margin-left:20px;
  12. }

这里浏览器兼容只能是IE8或更高版本,所以如果要兼容IE7的话,请加入以下代码

  1. .navbar ul {
  2. display:inline;
  3. zoom:1;
  4. }

方法2:position:relative

这是使用「position:relative」定位方法来让元素水平居中,我不是很推荐这方法,因为代码多了个p去包住,当然这些是根据情况来使用的。

HTML代码:

  1. <p class="navbar">
  2. <p>
  3. <ul>
  4. <li><a href="/">首页</a></li>
  5. </ul>
  6. </p>
  7. </p>

CSS代码:
将定位p设为浮动,再定位「left:50%」,然后导航定位至「left:-50%」,这方法很有意思吧。可能表达不是很清楚,自己看代码吧^^

  1. .navbar {
  2. overflow:hidden;
  3. }
  4. .navbar > p {
  5. position:relative;
  6. left:50%;
  7. float:left;
  8. }
  9. .navbar ul {
  10. position:relative;
  11. left:-50%;
  12. float:left;
  13. }
  14. .navbar li {
  15. float:left;
  16. }
  17. .navbar li + li {
  18. margin-left:20px;
  19. }

如果要兼容IE7,请添加以下样式:

  1. .navbar {
  2. position:relative;
  3. }

方法3:display:table

如果你喜欢简洁的代码,哪么这个方法就非常适合你了。

HTML代码:

  1. <ul class="navbar">
  2. <li><a href="/">Home</a></li>
  3. </ul>

CSS代码:

  1. .navbar {
  2. display:table;
  3. margin:0 auto;
  4. }
  5. .navbar li {
  6. display:table-cell;
  7. }
  8. .navbar li + li {
  9. padding-left:20px;
  10. }

浏览器兼容:这方法代码精简,但不支持IE7及以下版本……

方法4:display:inline-flex

有关flex layout的知识自己查下吧>_<

HTML代码:

  1. <p class="navbar">
  2. <ul>
  3. <li><a href="/">Home</a></li>
  4. </ul>
  5. </p>

CSS代码:

  1. .navbar {
  2. text-align:center;
  3. }
  4. .navbar > ul {
  5. display:-webkit-inline-box;
  6. display:-moz-inline-box;
  7. display:-ms-inline-flexbox;
  8. display:-webkit-inline-flex;
  9. display:inline-flex;
  10. }
  11. .navbar li + li {
  12. margin-left:20px;
  13. }

浏览器兼容:不支持IE7及以下版本的IE浏览器。

方法5:width:fit-content

HTML代码:

  1. <p class="navbar">
  2. <ul>
  3. <li><a href="/">首页</a></li>
  4. </ul>
  5. </p>

CSS代码:

  1. .navbar {
  2. text-align:center;
  3. }
  4. .navbar > ul {
  5. display:-webkit-inline-box;
  6. display:-moz-inline-box;
  7. display:-ms-inline-flexbox;
  8. display:-webkit-inline-flex;
  9. display:inline-flex;
  10. }
  11. .navbar li + li {
  12. margin-left:20px;
  13. }

浏览器兼容:这个兼容比较低,只支持Firefox或chrome、Opera 12这些较新的浏览器。

写在最后:方法1:display:inline-block 简单易懂。

以上就是CSS中五种方法实现导航菜单水平居中的实例详解的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行