2016-11-29 1 views
0

Только что заметили эту проблему сейчас, если у меня есть элемент span, я могу сделать его полной шириной родительского контейнера, если применим стиль display: block, но я заметил, что то же самое не происходит, когда элемент является button. Вопрос в том, почему? Почему кнопка ведет себя по-другому (по умолчанию это элемент блока, если я правильно помню)Почему элемент кнопки не принимает полную ширину контейнера, например, span?

Я исправил его, применив width:100% к кнопке, но не совсем уверен, почему он ведет себя по-другому.

Fiddle для тестирования: https://jsfiddle.net/9k3pjy9e/1/

+0

Браузеры добавляют стили по умолчанию к некоторым элементам, включая кнопки. Вы можете переопределить их, но если вы этого не сделаете, они будут отображаться так, как будет выглядеть браузер. В случае кнопок большинство браузеров полагают, что они должны иметь ширину, основанную на значении (очень похожую на встроенные элементы), а также на некоторые дополнения и границы. Это гарантирует, что элементы кнопок выглядят как кнопки из коробки, без пользовательских стилей. Не забудьте проверить ответ, упомянутый в пред. comment – mizurnix

ответ

0

Кнопка. = inline-block «По умолчанию размер кнопки определяется его текстовым содержанием (так широко, как его содержание) Используйте свойство ширины для изменения ширины кнопки. "

More info here

Span: = inline встроенный элемент не начинается с новой строки и занимает лишь столько, сколько необходимо ширину.

установить его на display: block; тогда:

элемент блока: Элемент уровня блока всегда начинается с новой строки и занимает всю доступную ширину (растягивается влево и вправо, насколько это возможно).

Так что, когда это работает с элементом span, для button элемент width должен быть установлен.

+0

Я подозреваю, что кто-то проголосовал за ваш ответ, потому что он не объяснил, почему элемент ** ** ** ведет себя иначе, чем элемент ** span **. –

+0

Спасибо, Билл, честно говоря, я думаю, что это было отклонено, потому что я не соблюдал дубликат, но, честно говоря, я нашел его слишком широким для этого конкретного случая. Я попытался отполировать его немного больше, надеюсь, что это поможет прояснить. С уважением. – Syden

+0

Это вполне может быть правдой. Я ненавижу обнаженные голоса. –