Sobre a semântica do HTML, na aula, é mostrada a criação de um botão utilizando a tag <input>
. Porém, a tag <button>
também existe. Qual é a diferença em termos semânticos e funcionais entre usar uma ou outra? Como escolher a melhor opção?
Sobre a semântica do HTML, na aula, é mostrada a criação de um botão utilizando a tag <input>
. Porém, a tag <button>
também existe. Qual é a diferença em termos semânticos e funcionais entre usar uma ou outra? Como escolher a melhor opção?
Olá Khayan!
Semanticamente, eles tem o mesmo significado. O elemento <button>
foi criado mais recentemente e tem um modo de uso diferente, veja como fica o mesmo botão usando <input>
e <button>
:
<input class="favorite styled"
type="button"
value="Add to favorites">
<button class="favorite styled"
type="button">
Add to favorites
</button>
A página do MDN sobre <button>
(em inglês), diz sobre as vantagens de usá-lo:
É muito mais fácil estilizar elementos
<button>
do que elementos<input>
. Você pode adicionar conteúdo HTML (como<em>
,<strong>
, ou até<img>
), e usar pseudo-elementos::after
e::before
para executar composições complexas, enquanto<input>
aceita apenas um atributovalue
do tipo texto.
Ou seja, através da tag <button>
conseguimos além de uma melhor semântica, facilidades e vantagens na estilização do elemento. Legal, Pablo! Obrigado.