SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
13.01.2025

Como Fazer com que Input e Select Tenham a Mesma Largura em HTML

Resposta Rápida

Para garantir que os campos input e os dropdowns select tenham a mesma largura, você pode usar a propriedade flex: 1; nas estilos CSS de um contêiner flexível.

.flex-container {
  display: flex;
}

input, select {
  flex: 1;
  padding: 8px;
  border: 1px solid #ccc;
}

O código CSS acima aplica flexbox ao elemento pai e permite que os elementos filhos input e select se expandam mantendo suas proporções dentro do contêiner com a classe .flex-container.

Diferenças nas Dimensões dos Elementos Input e Select

As dimensões dos elementos de formulário são determinadas pela propriedade box-sizing. O valor padrão content-box não inclui as bordas e o preenchimento do elemento.

Ao definir box-sizing: border-box;, você inclui o preenchimento e as bordas na largura total do elemento, garantindo um dimensionamento preciso.

input, select {
  box-sizing: border-box;
  width: 100%;
}

Recomenda-se também aplicar um reset CSS para unificar a aparência dos elementos em diferentes navegadores.

* {
  margin: 0;
  padding: 0;
  border: 0;
}

Exibição Consistente em Navegadores

Os navegadores interpretam e exibem elementos de maneira diferente, por isso, para obter uma aparência uniforme, é aconselhável usar uma combinação de box-sizing, reset CSS e testar em diferentes navegadores.

Responsividade

Utilizar porcentagens e box-sizing: border-box; em design responsivo permite que os formulários se adaptem de forma flexível a diferentes dispositivos. Utilizar valores de largura fixos em pixels? Essa abordagem já está ultrapassada.

Visualização

Assumindo que a largura dos campos input e select seja a mesma:

🏊‍♂️ <input style="width: 100%"> 🏊‍♀️
🏊‍♀️ <select style="width: 100%"> 🏊‍♂️

O principal objetivo é garantir a exibição consistente desses campos em diferentes sistemas operacionais e dispositivos.

Apoio à Largura Igual

Gerenciamento Flexível com Flexbox

O Flexbox simplifica significativamente a gestão de layout de elementos em uma página e facilita a criação de designs responsivos. Uma das principais características do Flexbox é sua flexibilidade em comparação com outras tecnologias CSS.

Classes CSS Reutilizáveis

Crie uma classe CSS universal com box-sizing: border-box; que pode ser aplicada a todos os elementos de formulário, mantendo a uniformidade e reduzindo o tempo de desenvolvimento.

.equal-width {
  box-sizing: border-box;
  width: 100%;
}

Cascata é Importante!

Tente evitar o uso excessivo de !important, pois isso pode interromper a cascata adequada do CSS. Lembre-se de que a ordem das regras na folha de estilo é importante.

Avançando com CSS Grid

O CSS Grid oferece ainda mais controle sobre o posicionamento de elementos. Ele pode ser utilizado para ajustes precisos de largura e alinhamento.

.grid-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
}

input, select {
  padding: 0.5em;
  border: 1px solid #ccc;
}

Testar layouts em diferentes navegadores ajudará a alcançar uniformidade, assim como testar uma receita para o prato perfeito.

Separando Estilos em Arquivos Diferentes

É recomendável colocar os estilos CSS em arquivos separados para facilitar a gestão dos estilos do projeto e melhorar a legibilidade do código.

Recursos Úteis

  1. Guia Completo de Flexbox | CSS-Tricks — tudo sobre o uso de Flexbox em CSS.
  2. width - CSS | MDN — descrição detalhada da propriedade width em CSS.
  3. Input Group · Bootstrap v5.1 — como o Bootstrap ajuda a criar elementos de input modernos e consistentes.
  4. Normalize.css — para garantir consistência na aparência em diferentes navegadores.
  5. CSS Forms — guia para estilização de elementos de formulário.
  6. Flexbox | Codrops — referência abrangente para Flexbox em CSS.
  7. “flexbox” | Can I use... — verifique o suporte a navegador para Flexbox.

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!