Examples and usage guidelines for for form control styles, layout options, and custom components for creating a wide variety of forms.
Overview
Bootstrap ‘ s form controls expand on our Reboted form styles with classes. Use estas classes para optar por seus displays personalizados para uma renderização mais consistente entre navegadores e dispositivos.
certifique-se de que utiliza um atributo
em todas as entradas (por exemplo:,,email
para endereço de E-mail ounumber
para informação numérica) para tirar vantagem de novos controles de entrada como verificação de E-mail, seleção de Números, e muito mais.
Aqui está um exemplo rápido para demonstrar os estilos de forma de Bootstrap. Continue lendo para documentação sobre as classes necessárias, layout do formulário, e muito mais.
controles de Formulário
certifique-se de explorar nossos formulários personalizados para mais de estilo <select>
s.
Para o arquivo de entradas, trocar o .form-control
para .form-control-file
.,
Dimensionamento
Definir alturas, utilizando classes, como .form-control-lg
e .form-control-sm
.
Readonly
Add the readonly
Boolean attribute on an input to prevent modification of the input’s value. As entradas apenas para leitura aparecem mais leves (tal como as entradas desactivadas), mas mantêm o cursor padrão.,
só de Leitura de texto simples
Se você deseja ter <input readonly>
elementos em sua forma elaborada como texto sem formatação, use o .form-control-plaintext
classe para remover o padrão de campo de formulário de estilo e preservar o correto margin e padding.
as entradas da Gama
definem horizontalmente as entradas da Gama de posicionamento usando .form-control-range
.,
Checkboxes e rádios
checkboxes e rádios padrão são melhorados com a ajuda de.form-check
, uma única classe para ambos os tipos de entrada que melhora a disposição e o comportamento de seus elementos HTML. Checkboxes são para selecionar uma ou várias opções em uma lista, enquanto Rádios são para selecionar uma opção de muitas.
checkboxes e rádios desativados são suportados. O atributo disabled
irá aplicar uma cor mais clara para ajudar a indicar o estado da entrada.,
Checkboxes e rádios são construídos para suportar a validação do formulário baseado em HTML e fornecer etiquetas concisas e acessíveis. Como tal, o nosso <input>
s e <label>
s são colateral elementos em oposição a uma <input>
dentro de <label>
. Isso é um pouco mais detalhado de como você deve especificar id
e for
atributos para se relacionar com o <input>
e <label>
.,
Default (empilhado)
por padrão, qualquer número de checkboxes e rádios que são irmãos imediatos serão empilhados verticalmente e adequadamente espaçados com .form-check
.
Linha
o Grupo de caixas de verificação ou rádios na mesma linha horizontal adicionando .form-check-inline
para qualquer .form-check
.,
Sem etiquetas
Adicionar .position-static
entradas, dentro de .form-check
que não tem qualquer texto do rótulo. Lembre – se de ainda fornecer alguma forma de etiqueta para tecnologias de assistência (por exemplo, usando aria-label
).,
Layout
Desde Bootstrap aplica-se display: block
e width: 100%
para quase todos os nossos controles de formulário, formulários por padrão pilha vertical. Classes adicionais podem ser usadas para variar este layout em uma base por formulário.
forma grupos
o .form-group
classe é a maneira mais fácil de adicionar alguma estrutura às formas. Ele fornece uma classe flexível que incentiva o agrupamento adequado de etiquetas, controles, texto de Ajuda opcional, e mensagem de validação do formulário., Por padrão, ele só se aplica margin-bottom
, mas ele pega estilos adicionais no .form-inline
conforme necessário. Use it with <fieldset>
s, <div>
s, or nearly any other element.
grelha de forma
formas mais complexas podem ser construídas usando as nossas classes de grelha. Use estes para formatos que requerem múltiplas colunas, larguras variadas e opções adicionais de alinhamento.,
Formulário de linha
Você pode igualmente trocar .row
para .form-row
, uma variação do nosso padrão de grade de linha, que substitui o padrão da coluna, calhas para mais apertado e mais layouts compactos.
layouts mais complexos também podem ser criados com o sistema de grade.
Horizontal formulário
Criar horizontal formas com a grade adicionando o .row
classe a formar grupos e usando o .col-*-*
classes para especificar a largura de seus rótulos e controles., Certifique-se de adicionar .col-form-label
ao seu <label>
s assim como eles estão centrados verticalmente com seus controles de forma associados.
às vezes, você talvez precise usar utilitários de margem ou preenchimento para criar o alinhamento perfeito que você precisa. Por exemplo, removemos o padding-top
na nossa etiqueta de entrada de rádio empilhada para melhor alinhar a linha de base de texto.,
Horizontal rótulo do formulário de dimensionamento
dimensionamento de Colunas
Como mostrado nos exemplos anteriores, o nosso sistema de grelha permite que você coloque qualquer número de .col
s dentro de uma .row
ou .form-row
. Vão dividir a largura disponível igualmente entre eles. Você também pode escolher um subconjunto de colunas ocupam mais ou menos espaço, enquanto o restante .col
s dividido igualmente o resto, com coluna específica classes, como .col-7
.,
Auto-dimensionamento
O exemplo a seguir utiliza um flexbox utilitário verticalmente centro o conteúdo e as alterações .col
.col-auto
, de modo que as suas colunas apenas como espaço necessário. Dito de outra forma, a coluna se dimensiona com base no conteúdo.
você pode então remisturar isso mais uma vez com classes de coluna específicas de tamanho.
e, claro, são suportados os controlos de formulários personalizados.,
inline forms
Use the.form-inline
class to display a series of labels, form controls, and buttons on a single horizontal row. Os controles de formulários dentro de formulários inline variam ligeiramente de seus Estados padrão.
- Os controlos são
display: flex
, colapsando qualquer espaço em branco HTML e permitindo-lhe fornecer o controlo de alinhamento com utilitários de espaçamento e flexbox. - controles e grupos de entrada recebem
width: auto
para substituir o Bootstrap defaultwidth: 100%
.,os controles de - só aparecem em linha em verports que têm pelo menos 576px de largura para dar conta de vistas estreitas em dispositivos móveis.
poderá ter de abordar manualmente a largura e o alinhamento dos controlos de formulários individuais com os utilitários de espaçamento (como mostrado abaixo). Por último, certifique-se de incluir sempre um <label>
com cada controle de formulário, mesmo que você precise escondê-lo de visitantes não-screenreader com .sr-only
.
controlos e selecções personalizados também são suportados.,
alternativas às etiquetas ocultas
tecnologias de apoio, como leitores de ecrã, terão problemas com as suas formas se não incluir uma etiqueta para cada entrada. Para estas formas inline, você pode esconder as etiquetas usando a classe .sr-only
. Existem outros métodos alternativos de fornecer um rótulo para tecnologias assistivas, tais como o aria-label
aria-labelledby
ou title
atributo., Se nenhuma delas estiver presente, a assistive technologies pode recorrer ao atributo
, se presente, mas note que a utilização de placeholder
em substituição de outros métodos de rotulagem não é aconselhada.
Help text
Block-level help text in forms can be created using .form-text
(previously known as .help-block
in v3). O texto de Ajuda Inline pode ser implementado de forma flexível usando qualquer elemento HTML inline e classes de utilitários como .text-muted
.,
associar help text aos controlos da forma
Help text deve ser explicitamente associado ao controlo da forma que se relaciona com o uso do atributo aria-describedby
. Isto assegurará que as tecnologias de assistência—tais como leitores de tela-anunciarão este texto de ajuda quando o usuário focaliza ou entra no controle.
o texto de Ajuda abaixo das entradas pode ser estilizado com .form-text
. Esta classe inclui display: block
e acrescenta alguma margem superior para um espaçamento fácil a partir das entradas acima.,
inline text can use any typical inline HTML element (be it a <small>
, <span>
, or something else) with nothing more than a utility class.
formas desactivadas
adicione o atributodisabled
booleano numa entrada para prevenir interacções com o utilizador e fazê-lo parecer mais leve.,
Adicionar disabled
atributo para uma <fieldset>
para desabilitar todos os controles dentro.
Ressalva com âncoras
Por padrão, os navegadores irão tratar todos os nativos controles de formulário (<input>
<select>
e <button>
elementos) dentro de uma <fieldset disabled>
desativado, prevenção de teclado e mouse medicamentosas sobre eles., No entanto, se a sua forma também incluir<a ... class="btn btn-*">
elementos, estes só serão dados um estilo de pointer-events: none
. Como observado na seção sobre estado desativado para botões (e especificamente na sub-seção para elementos de âncora), esta propriedade CSS ainda não é padronizada e não é totalmente suportada no Internet Explorer 10, e não vai impedir os usuários de teclado de ser capaz de focar ou ativar esses links. Para ser Seguro, use JavaScript personalizado para desativar tais links.,
compatibilidade Cross-browser
Enquanto Bootstrap irá aplicar estes estilos em todos os navegadores, o Internet Explorer 11 e abaixo não suporta totalmente o disabled
atributo em um <fieldset>
. Use JavaScript personalizado para desactivar o conjunto de campos nestes navegadores.
validação
fornecer feedback valioso e accionável aos seus utilizadores com validação do formulário HTML5-disponível em todos os nossos navegadores suportados. Escolha a partir do feedback de validação padrão do navegador, ou implemente mensagens personalizadas com as nossas classes incorporadas e iniciador JavaScript.,
atualmente recomendamos o uso de estilos de validação personalizados, uma vez que as mensagens de validação padrão do navegador nativo não são constantemente expostas a tecnologias de assistência em todos os navegadores (mais notavelmente, Chrome on desktop e mobile).
How it works
Aqui está como a validação do formulário funciona com Bootstrap:
- A validação do formulário HTML é aplicada através das duas pseudo-classes do CSS, e
:valid
. Aplica-se<input>
<select>
e<textarea>
elementos., - Bootstrap escopos
:invalid
e:valid
estilos de pai.was-validated
classe, geralmente aplicado para o<form>
. Caso contrário, qualquer campo necessário sem um valor aparece como inválido na carga de página. Desta forma, você pode escolher quando ativá-los (normalmente após a submissão do formulário é tentado). - para reiniciar a aparência do formulário (por exemplo, no caso de envios de formulário dinâmico usando AJAX), remova o
.was-validated
classe do<form>
novamente após a submissão., - Como alternativa,
.is-invalid
e.is-valid
podem ser utilizadas classes em vez das pseudo-classes para validação do lado do servidor. Eles não necessitam de uma classe.was-validated
pai. - devido a restrições em como CSS funciona, nós não podemos (atualmente) aplicar estilos a um
<label>
que vem antes de um controle de forma no DOM sem a ajuda de Javascript personalizado. - todos os navegadores modernos suportam a API de validação de Restrições, uma série de métodos JavaScript para validar controles de formulários.,
- mensagens de Feedback podem utilizar as predefinições do navegador (diferentes para cada navegador, e imparáveis via CSS) ou os nossos estilos de feedback personalizado com HTML e CSS adicionais.
- Pode fornecer mensagens de validade personalizadas com
setCustomValidity
em JavaScript.
com isso em mente, considere as seguintes demos para os nossos estilos de validação de formulários personalizados, classes opcionais do lado do servidor e predefinições do navegador.,
estilos personalizados
para mensagens personalizadas de validação do formulário Bootstrap, terá de adicionar o novalidate
atributo booleano ao seu <form>
. Isto desactiva as dicas de feedback padrão do navegador, mas ainda fornece acesso à APIs de validação do formulário em JavaScript. Tente enviar o formulário abaixo; nosso JavaScript irá interceptar o botão enviar e transmitir o feedback para você. Ao tentar enviar, você verá os estilos e :valid
aplicados aos controlos da sua forma.,
estilos de feedback personalizados aplicam cores personalizadas, contornos, estilos de foco e ícones de fundo para melhor comunicar feedback. Fundo ícones para <select>
s só estão disponíveis com o .custom-select
, e não .form-control
.
os valores por omissão do navegador
não estão interessados em mensagens personalizadas de feedback de validação ou em escrever JavaScript para alterar comportamentos de forma? Tudo bem, você pode usar os padrões do navegador. Tente enviar o formulário abaixo. Dependendo do seu navegador e SO, você verá um estilo ligeiramente diferente de feedback.,
embora estes estilos de feedback não possam ser definidos com CSS, você ainda pode personalizar o texto de feedback através de JavaScript.
do lado do Servidor
Nós recomendamos o uso de validação do lado do cliente, mas no caso de você precisar de validação do lado do servidor, você pode indicar inválido válido e campos de formulário com .is-invalid
e .is-valid
. Note que .invalid-feedback
também é suportado com estas classes.,
Suporte para elementos
Validação de estilos estão disponíveis para os seguintes controles de formulário e componentes:
Dicas
Se o seu layout de forma a permitir, você pode trocar o .{valid|invalid}-feedback
classes de .{valid|invalid}-tooltip
classes para apresentar a validação de feedback em um estilo de dica de ferramenta. Certifique-se de ter um pai com position: relative
nele para posicionamento da dica. No exemplo abaixo, nossas classes de colunas já têm isso, mas seu projeto pode exigir uma configuração alternativa.,
personalizar
estados de validação podem ser personalizados via Sass com o $form-validation-states
mapa. Localizado em nosso arquivo _variables.scss
, este mapa Sass é looped sobre para gerar o padrão valid
/invalid
estados de validação. Incluído é um mapa aninhado para personalizar a cor e ícone de cada Estado. Enquanto nenhum outro estado é suportado por navegadores, aqueles que usam estilos personalizados podem facilmente adicionar feedback de forma mais complexa.,
Por Favor note que não recomendamos personalizar estes valores sem também modificar o form-validation-state
mixin.
formas personalizadas
para ainda mais personalização e consistência cruzada do navegador, use os nossos elementos de forma completamente personalizada para substituir as predefinições do navegador. Eles são construídos em cima de uma marca semântica e acessível, então eles são substitutos sólidos para qualquer controle de forma padrão.,
Caixas de seleção e rádios
Cada caixa de seleção e de rádio <input>
e <label>
emparelhamento é envolto em uma <div>
para criar o nosso controle personalizado. Estruturalmente, esta é a mesma abordagem que nosso padrão .form-check
.
usamos o selector de irmãos (~
) para todo o nosso<input>
estados—como:checked
—para ajustar adequadamente o nosso indicador de forma personalizada., Quando combinado com a classe .custom-control-label
, também podemos estilo o texto para cada item baseado no estado de <input>
‘S.
Nós ocultar o padrão <input>
com opacity
e usar o .custom-control-label
para criar um novo formulário personalizado do indicador em seu lugar com ::before
e ::after
. Infelizmente não podemos construir um personalizado a partir apenas do <input>
porque o CSS’scontent
não funciona nesse elemento.,
nos Estados assinalados, usamos ícones SVG embutidos do base64 do Open Iconic. Isso nos fornece o melhor controle para o estilo e posicionamento através de navegadores e dispositivos.
Checkboxes
as checkboxes personalizadas também podem utilizar a :indeterminate
pseudo classe quando configurada manualmente via JavaScript (não existe nenhum atributo HTML disponível para o especificar).,
Se você estiver usando o jQuery, algo como isto deve ser o suficiente:
Rádios
Linha
Desativada
Personalizado caixas de seleção e rádios também pode ser desativado., Adicione o atributodisabled
booleano ao atributo<input>
e o indicador personalizado e a descrição do rótulo serão automaticamente denominados.
comuta
um comutador tem a marca de uma opção Personalizada, mas usa a classe
para desenhar um comutador de comutação. Switches also support the disabled
attribute.,
Seleccione o menu
Personalizado <select>
menus precisam apenas de uma classe personalizada, .custom-select
para acionar os estilos personalizados. Os estilos personalizados estão limitados à aparência inicial do <select>
e não podem modificar o <option>
s devido às limitações do navegador.
Pode também escolher entre pequenas e grandes opções personalizadas para corresponder às nossas entradas de texto de tamanho semelhante.,
multiple
atributo é suportado também:
Como o size
atributo:
Gama
Criar personalizado <input type="range">
controles com .custom-range
. A faixa (o fundo) e o polegar (o valor) são ambos estilizados para parecer o mesmo em todos os navegadores. Como apenas o IE e o Firefox suportam “encher” a sua pista a partir da esquerda ou direita do polegar como um meio para indicar o progresso visualmente, não o suportamos de momento.,
Range inputs have implicit values for min
and max
—0
and 100
, respectively. You may specify new values for those using the min
and max
attributes.
By default, range inputs “snap” to integer values., Para alterar isto, pode indicar um valor step
. No exemplo abaixo, dobramos o número de passos usando step="0.5"
.
navegador de arquivos
O plugin recomendado para animar arquivo personalizado de entrada: bs-personalizado-arquivo de entrada, que é o que estamos usando atualmente aqui no nosso docs.,
a entrada do ficheiro é a mais deformada do grupo e necessita de JavaScript adicional se quiser ligá-los ao ficheiro funcional escolher… e ao texto do nome do ficheiro seleccionado.
Nós ocultar o arquivo padrão <input>
por opacity
e, em vez de estilo <label>
. O botão é gerado e posicionado com ::after
. Por fim, declaramos uma width
e height
no <input>
para o espaçamento adequado para conteúdo circundante.,
Translating or customizing the strings with SCSS
The :lang()
pseudo-class is used to allow for translation of the” Browse ” text into other languages. Sobrepor ou adicionar itens à variável $custom-file-text
Sass com a tag da língua relevante e strings localizadas. As cordas em inglês podem ser personalizadas da mesma forma., Por exemplo, aqui está como um pode adicionar uma tradução de espanhol (espanhol do código de idioma é es
):
Aqui lang(es)
na ação sobre o arquivo personalizado de entrada para uma tradução em espanhol:
Você precisará definir o idioma do documento (ou subárvore dele) corretamente para que o texto correto para ser mostrado., Isto pode ser feito usando o atributo lang
no cabeçalho <html>
ou o Content-Language
HTTP, entre outros métodos.
traduzir ou personalizar as cadeias de caracteres com HTML
Bootstrap também oferece uma forma de traduzir o texto “navegar” em HTML com o atributo que pode ser adicionado ao rótulo de entrada personalizado (exemplo em neerlandês):
Leave a Reply