css - 以背景图片为中心的链接

标签 css

我试图将链接与背景图片居中,但我发现它在顶部对齐,并且每个背景图片的尺寸都不同,即使我指定了尺寸也是如此。

http://i.imgur.com/V5wNj0q.png

HTML

  <section>
    <h3>Contact</h3>
    <ul id="contact">
      <li class="phone"><a href="tel:111-111-1111">111-111-1111</a></li>
      <li class="mail"><a href="mailto:mail@mail.com">mail@mail.com</a></li>
    </ul>
  </section>

CSS

#contact {
  list-style: none;
  padding: 0;
  margin: 0;
}

#contact a {
  display: block;
  min-height: 30px;
  background-repeat: no-repeat;
  background-size: 30px 30px;
  margin: 0 0 0 15px;
  padding: 0 30px 0 30px;
}

.phone a {
  background-image: url("../img/phone.jpg");
}

.mail a {
  background-image:url("../img/mail.jpg");
}

最佳答案

您可以通过下面的代码片段解决这个问题,但您也可以通过 :after 元素来解决这个问题。

.phone:after {
  background-image: url('http://imgur.com/dU2eTo1.png');
  content: '';
  display: block;
  width: 30px;
  height: 30px;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}

代码片段

#contact {
  list-style: none;
  padding: 0;
  margin: 0;
}

#contact a {
  display: block;
  min-height: 30px;
  background-repeat: no-repeat;
  background-size: 30px 30px;
  margin: 0 0 0 15px;
  padding: 0 30px 0 40px; /* Altered */
  line-height: 30px; /* Added */
  background-position: left center; /* Added */
}

.phone a {
  background-image: url("http://imgur.com/dU2eTo1.png");
}

.mail a {
  background-image:url("http://imgur.com/dU2eTo1.png");
}
<section>
    <h3>Contact</h3>
    <ul id="contact">
      <li class="phone"><a href="tel:111-111-1111">111-111-1111</a></li>
      <li class="mail"><a href="mailto:mail@mail.com">mail@mail.com</a></li>
    </ul>
  </section>

关于css - 以背景图片为中心的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35997231/

相关文章:

ios - 添加 CSS 图像 - Phonegap

html - 我的标题图片没有响应

css - 对齐 Flex 弹出窗口

css - 破折号:数字小部件背景颜色

css - 无法让我的 div 固定布局

css - 我需要文本出现在交互元素上而不破坏该元素

javascript - 表格在不同屏幕尺寸上看起来不统一

css - 不能在 Webkit 中使用 SVG 作为 CSS 背景

html - 在 CSS 中重新创 build 计

html - 如何消除 bootstrap div 中的空白