Исправлено # 1: для значков со шрифтами нужны пустые элементы
Исправлено # 2: Ваши теги должны быть правильно вложены. Элементы A
и SPAN
перекрываются. Так что попробуйте.
<a href="#">
<i class="fa fa-envelope"></i>
<sup><span class="badge badge-success">5</span></sup>
</a>
Теперь вы можете установить стиль display:inline-block;
для элемента span
, чтобы он стал коробкой, предотвращающей перенос текста под значком.
<span style="display:inline-block;">
<img src="./girl.jpg" class="img-circle img2" />
<i class="picsname2">Welcome,<br>John Doe</i>
</span>
Следующая причина, по которой текст .picsname2
находится на новой строке, заключается в том, что вы использовали элемент <br>
для переноса строки.
Либо попробуйте:
<div style="display: flex; flex-direction: row; align-items: center;">
<a href="#">
<span class="fa fa-envelope"></span>
<sup><span class="badge badge-success">5</span></sup>
</a>
<span style="display:inline-block;">
<img src="./girl.jpg" class="img-circle img2" />
<i class="picsname2">Welcome,<br />John Doe</i>
</span>
</div>
или удалите разрыв строки следующим образом:
<div>
<a href="#">
<span class="fa fa-envelope"></span>
<sup><span class="badge badge-success">5</span></sup>
</a>
<span>
<img src="./girl.jpg" class="img-circle img2" />
<i class="picsname2">Welcome, John Doe</i>
</span>
</div>
Изображение должно быть фиксированного размера, чтобы предотвратить изменение высоты. Даже если мы используем Flex box, вы не хотите, чтобы высота панели навигации менялась слишком сильно, иначе вы тратите пространство контента на мобильных устройствах.