Поместить текст в картинку HTML/CSS

280
16 сентября 2018, 04:10

Всем привет!

Начал потихоньку разбираться с HTML и CSS сразу подкатила небольшая работка. Так как я только учусь всех нюансов не знаю. Имеется меню в котором текст должен быть написан на звездочках, звездочки(они разного цвета) являются картинками и требуется поместить ссылку в них. Уже пытался это сделать с помощью position: relative и absolute. Выравнивал текст по первой ссылке и получалось так, что 1 ссылка становилась ровно в центр, а остальные 4 съезжали влево с помощью padding исправить это не удавалось, так как кол-во букв разное и все равно в какую-то сторону ссылки съезжали.

Кусочек кода HTML:

            <nav>
                <li><img src="img/star1.png" alt=""><a href="#">Avaleht</a></li>
                <li><img src="img/star1.png" alt=""><a href="#">Broneeri</a></li>
                <li><img src="img/star1.png" alt=""><a href="#">Reeglid</a></li>
                <li><img src="img/star1.png" alt=""><a href="#">Hinnad</a></li>
                <li><img src="img/star1.png" alt=""><a href="#">Galerii</a></li>
            </nav>

Здесь картинки одинаковые, так как 5 с разными цветами прикладывать я думаю не имеет смысла.

CSS:

nav {
   float: right;
}
nav li {
   float: left;
   display: block;
   position: relative;
}
nav img {
   height: 150px;
   width: 150px;
}
nav li a {
   position: absolute;
   top: 50px;
   right: 15px;
   color: #fff;
   text-decoration: none;
   text-transform: uppercase;
   text-shadow: 5px 6px 10px #000000;
   font-size: 27px;
   font-family: "Roboto", sans-serif;
}

Может это у меня руки не из того места растут, но вроде я делаю все правильно. Возможно это можно выровнять через child, но я уверен есть более простой способ.

Картинка:

У меня получается вот такая вот фигня:

P.S. каждая ссылка должна быть в центре звезды.

Answer 1

img { 
  width: 100px; 
  height: 100px; 
  float: left; 
} 
 
a { 
  display: inline-block; 
  position: absolute; 
  top: 40px; 
  left: 25px; 
} 
 
li { 
  display: inline-block; 
  position: relative; 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<html> 
 
<head> 
</head> 
 
<body> 
  <nav> 
    <li><img src="http://pngimg.com/uploads/star/star_PNG41531.png" alt=""><a href="#">Avaleht</a></li> 
    <li><img src="http://pngimg.com/uploads/star/star_PNG41531.png" alt=""><a href="#">Broneeri</a></li> 
    <li><img src="http://pngimg.com/uploads/star/star_PNG41531.png" alt=""><a href="#">Reeglid</a></li> 
    <li><img src="http://pngimg.com/uploads/star/star_PNG41531.png" alt=""><a href="#">Hinnad</a></li> 
    <li><img src="http://pngimg.com/uploads/star/star_PNG41531.png" alt=""><a href="#">Galerii</a></li> 
    <li><img src="http://pngimg.com/uploads/star/star_PNG41531.png" alt=""><a href="#">Galerii</a></li> 
    <li><img src="http://pngimg.com/uploads/star/star_PNG41531.png" alt=""><a href="#">Galerii</a></li> 
  </nav> 
</body> 
</html

READ ALSO
Неправильно работает скролл в меню

Неправильно работает скролл в меню

Подробнее ниже в изображении

236
Отступы для текста

Отступы для текста

Я могу задать отступы (margin) для текста? Ну, что чтобы у текста был отступ сверху и снизу

222
Video tag не работает в Safari

Video tag не работает в Safari

Вот собственно сам код:

221
Проверка значений data атрибутов

Проверка значений data атрибутов

Есть два кусочка html кода с классами к примеру "one" "two", в них одинаковые дата атрибуты с разными значениями, которые будут подставятся динамическиКак...

221