«пробел» активируется, потому что вы сделали элемент img
элементом уровня блока.
За MDN :
Элемент уровня блока всегда начинается с новой строки и занимает всю доступную ширину (растягивается влево и вправонасколько это возможно).
Это приводит к тому, что якорь оборачивает изображение плюс левое и правое поля.
Для предотвращения растяжения img
до полной ширины (и связав элемент привязки), вы можете применить стили ширины к элементу привязки или предоставить изображению свой собственный контейнер и центрировать содержимое.Вы можете сделать это с помощью text-align: center;
или justify-content: center;
при изменении значения дисплея контейнеров на flex (display: flex;
).
Поскольку разметка становится более сложной или автоматизированной (например, CMS), вы, вероятно, будете иметьиспользовать контейнерный раствор.
Якорный раствор
.center-img-link {
display: block;
margin-left: auto;
margin-right: auto;
}
.center-img-link--100 {
width: 100px;
}
.center-img-link img {
width: 100%;
}
<p>text<br>more text</p>
<a href="www.stackoverflow.com" class="center-img-link center-img-link--100">
<img src="https://images.pexels.com/photos/1632846/pexels-photo-1632846.jpeg">
</a>
<p>even more text<br>still more text</p>
Решение для выравнивания текста
img {
width: 100px;
margin-left: auto;
margin-right: auto;
}
.text-center {
text-align: center;
}
<p>text<br>more text</p>
<div class="text-center">
<a href="www.stackoverflow.com">
<img src="https://images.pexels.com/photos/1632846/pexels-photo-1632846.jpeg">
</a>
</div>
<p>even more text<br>still more text</p>
Решение Flexbox
img {
width: 100px;
margin-left: auto;
margin-right: auto;
}
.flex-h-center {
display: flex;
justify-content: center;
}
<p>text<br>more text</p>
<div class="text-center">
<a href="www.stackoverflow.com">
<img src="https://images.pexels.com/photos/1632846/pexels-photo-1632846.jpeg">
</a>
</div>
<p>even more text<br>still more text</p>