【问题标题】:Add icon to menu items - icon not showing properly, css issue向菜单项添加图标 - 图标未正确显示,css 问题
【发布时间】:2019-09-27 23:01:29
【问题描述】:

我正在尝试向我的菜单项添加图标。我已经阅读了许多不同的教程,但是所有教程推荐的 css 都不适合我,我不知道该怎么做。

这是我的html和css:

<div class="hike-menu">
  <ul>
    <li class="icon">Menu Item 1</li>
    <li class="icon">Menu Item 2</li>
    <li class="icon">Menu Item 3</li>
    <li class="icon">Menu Item 4</li>
  </ul>
</div>
ul li {
  list-style-type: none;
  display: inline-block;
}

.icon {
  background-image: url("https://i.postimg.cc/ZWW7qTmm/calendar-yellow-copy.png");
  background-repeat: no-repeat;
  background-position: top;
}

如果你想看一下,我也上传到了一个 jfiddle。您可以看到图标未显示的确切问题。 https://jsfiddle.net/katherinekonn/g1e4cok3/5/

我还应该注意,我绝对有必要为此使用背景图像,我无法将 img 链接直接放入 html 中。有谁知道我该如何解决?我希望图标位于列表项文本上方。

这是我正在尝试创建的图像:

【问题讨论】:

  • 你能告诉我们你的期望吗
  • @XenioGracias 抱歉,我刚刚附上了我正在尝试使用图标创建的图像
  • 您能否展示您放置 calendar-yellow-copy.png 的文件夹结构?

标签: html css


【解决方案1】:

主要问题与您使用的图标大小有关。实际尺寸比您要求的要大得多。因此,要么调整图像大小,要么在 css 中应用背景图像大小。然后为&lt;LI&gt; 应用一些 padding-top 以避免文本和图标重叠。

我尝试在小提琴中修改你的 css,它对我来说很完美。请看下面

ul li {
  list-style-type: none;
  display: inline-block;
}

.icon {
  background-image: url("https://i.postimg.cc/ZWW7qTmm/calendar-yellow-copy.png");
  background-size: 20px;
  background-repeat: no-repeat;
  background-position: top;
  padding-top: 30px;
}

【讨论】:

    【解决方案2】:

    请试试这个。它会起作用的。

    HTML

    <div class="hike-menu">
      <ul>
        <li class="element">
          <div class="icon">
          </div>
           <div class="text">
             Menu Item 1
           </div>
         </li>
        <li class="element">
          <div class="icon">
          </div>
           <div class="text">
             Menu Item 2
           </div>
         </li>
         <li class="element">
          <div class="icon">
          </div>
           <div class="text">
             Menu Item 2
           </div>
         </li>
         <li class="element">
          <div class="icon">
          </div>
           <div class="text">
             Menu Item 2
           </div>
         </li>
      </ul>
    </div>
    

    CSS

    ul li {
      list-style-type: none;
      display: inline-block;
    }
    
    .icon {
      background-image: url("https://i.postimg.cc/ZWW7qTmm/calendar-yellow-copy.png");
      background-repeat: no-repeat;
      background-position: top;
      background-size: cover;
      display: block;
      width: 24px;
      height: 24px;
      margin: 0 auto;
    }
    
    .text {
      display: block;
    }
    

    【讨论】:

    • 它对我不起作用,因为我正在使用 wordpress 并使用 php 来获取菜单。出于这个原因,代码需要保持我在示例中的布局方式,唯一的区别是 li 标签中有一个锚链接。
    • 您需要在您的li 标签中添加额外的div。只有这样才能使您的图标位于文本顶部。否则一切都将是内联的,并且图像将仅作为背景图像。您可以根据我的 css 编辑您的小提琴示例。它会起作用的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多