Ширина для тега <a>в html

Можно ли установить некоторую ширину тега <a> в html? Если да, то каков путь, если нет никакой работы вокруг?

Ответ 1

Вы можете переопределить его как элемент блока, а затем установить для него ширину: a{display:block;width:400px}.

EDIT: Однако в этом случае он начнется с новой строки, и следующий фрагмент текста также будет в новой строке. То, что решает проблему, - это режим отображения inline-block, но это снова имеет проблемы со старыми версиями IE и FF (см. Здесь: http://caniuse.com/#search=inline-block)

Ответ 2

Свойство css width не влияет на встроенные элементы, такие как <a> или <span>. Чтобы использовать свойства уровня блока, такие как width, вам нужно объявить ваш элемент как элемент уровня блока, используя display:block:

<a style="display:block;width:200px">Your link</a>

Ответ 3

Если вам не понравилось display:block или display:inline-block, вы можете использовать прокладку

Ответ 4

Как говорили другие, элемент a является встроенным элементом и как таковой не интересуется шириной или высотой. Он ищет только контент и делает его таким же большим, как его требует контент.

Однако, в зависимости от того, что вы пытаетесь сделать, вы можете использовать padding и margin, чтобы изменить расстояние до других встроенных элементов. Например, <a style="padding: 0 5px;">some text</a> добавляет 5px отступ слева и справа от текста. Но опять же, фактический размер будет основан на размере текста.

По-другому следует избегать другого подхода, который является скорее взломом, и по возможности следует избегать:

<a style="background: red; padding-right: 100px;">
    <span style="position: absolute;">Some text</span>
</a>

Это добавляет пробел в 100 пикселей справа от текста, но, устанавливая абсолютную позицию текста, этот текст отображает "выше" остальных и игнорируется для всех дополнительных вычислений размера, поэтому элемент a в основном имеет нет прямого содержимого и как таковая ширина нуля с добавленным дополнением 100px вправо. Таким образом, элемент имеет ширину всего 100 пикселей. И, не изменяя положения диапазона после установки его в абсолютный, он останется там, где он был бы без абсолютного, поэтому он выглядит одинаково.