将图标添加到菜单项-图标无法正常显示,css问题

时间:2019-05-10 04:37:01

标签: html css

我正在尝试向菜单项添加图标。我已经阅读了许多不同的教程,但是所有教程推荐的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/

我还应该指出,为此,我绝对有必要使用background-image,因为我无法将img链接直接放置到html中。有谁知道我该如何解决?我希望图标位于列表项文本上方。

这是我要创建的图像: enter image description here

2 个答案:

答案 0 :(得分:1)

主要问题与您使用的图标的大小有关。实际大小比您所需的大得多。因此,您可以调整图像大小或在CSS中应用背景图像大小。然后为<LI>应用一些填充顶部,以避免文本和图标重叠。

我尝试在小提琴中修改您的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;
}

答案 1 :(得分:0)

请尝试这个。它将起作用。

  

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;
}