@Bobull

Как выровнять по центру блок span со спрайтом с разним размером картинок?

Есть код:
<ul>
  <li><span class="item1"></span></li>
  <li><span class="item2"></span></li>
  <li><span class="item3"></span></li>
</ul>


scss
ul {
  li {
    background: #262626;
    width: 109px;
    height: 109px;
    margin-left: 20px;
    list-style: none;
    border-radius: 50%;
    float: left;
    span {
     &.item1 {
       &:after {
          content: "";
          background: transparent url('https://s11.postimg.org/rrxo3gsz7/sprite_test.png') 0 0 no-repeat;
          width: 70px;
          height: 52px;
          display: inline-block;
        }
      }
       &.item2 {
       &:after {
          content: "";
          background: transparent url('https://s11.postimg.org/rrxo3gsz7/sprite_test.png') -70px -8px no-repeat;
          width: 23px;
          height: 32px;
          display: inline-block;
        }
      }
      &.item3 {
       &:after {
          content: "";
          background: transparent url('https://s11.postimg.org/rrxo3gsz7/sprite_test.png') -93px 0 no-repeat;
          width: 52px;
          height: 52px;
          display: inline-block;
        }
      }
    }
  }
}


https://jsfiddle.net/0s6u1b3b/

Нужно выровнять по цетру блок span с картинкой по отношению li:
sprite_norm.png

Можно margin или position: absolute (), но если в нас будет много картинок в sprite нужно будет кожному :after задавать параметры... а это напряжно :)
  • Вопрос задан
  • 2169 просмотров
Решения вопроса 1
sfi0zy
@sfi0zy Куратор тега CSS
Creative frontend developer
В случае с вашим спрайтом можно использовать такую штуку у span и не думать об их расположении:
position: absolute;
top: 50%;
left: 50%;
transform: translateX(-50%) translateY(-50%);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы