html - 如何垂直对齐水平 ul 内的 img

标签 html css html-lists

我的网站上有一个导航工作正常,但是,我们决定将 Logo 放在它的中间,现在我不能垂直对齐它,我尝试使用 line-height 但是它没有成功。

我把代码放在代码片段中,有人能帮帮我吗?

nav > ul > li > a > img {
  width: 60px;
  }

nav > ul {
  list-style: none;
  }

nav > ul > li {
  display: inline-block;
  }

nav > ul > li > a {
  text-decoration: none;
  color: black;
  }
<nav>
  <ul>
    <li><a href="#">Shop</a></li>
    <li><a href="#">Shop</a></li>
    <li><a href="#"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Wi-Fi_Logo.svg/1280px-Wi-Fi_Logo.svg.png" alt="logo"/></a></li>
    <li><a href="#">Shop</a></li>
    <li><a href="#">Shop</a></li>
  </ul>
</nav>

最佳答案

inline-block 默认为 vertical-align:baseline 所以设置为 middle,

img 的规则相同,所以如果您不想应用到 li,您可以应用到 img

nav > ul > li > a > img {
  width: 60px;
  /*vertical-align:middle - this would work here by itself too */
}
nav > ul {
  list-style: none;
}
nav > ul > li {
  display: inline-block;
  vertical-align: middle
}
nav > ul > li > a {
  text-decoration: none;
  color: black;
}
<nav>
  <ul>
    <li><a href="#">Shop</a>
    </li>
    <li><a href="#">Shop</a>
    </li>
    <li>
      <a href="#">
        <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Wi-Fi_Logo.svg/1280px-Wi-Fi_Logo.svg.png" alt="logo" />
      </a>
    </li>
    <li><a href="#">Shop</a>
    </li>
    <li><a href="#">Shop</a>
    </li>
  </ul>
</nav>

关于html - 如何垂直对齐水平 ul 内的 img,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36482164/

相关文章:

html - 页面 anchor 未通过 Visual Studio 2010 HTML 验证

html - CSS:水平滚动的问题

html - 如何在 Bootstrap 中添加固定宽度后使 div 响应

html - bootstrap 3 中的 float 框

html - 如何防止嵌套 <li> 扩展父 <li> 宽度?

css - 如何在 ul li 标签内的标签之间获得更多空间

html - 如何制作圆角的div

html - 将 div 元素调整为其背景图像大小

html - 导航栏下的图像

html - 使用无序列表居中视觉内容(具有流体响应布局)