Estou usando o Bootstrap para minha JSP
página.
Eu quero usar <fieldset>
e <legend>
para o meu formulário. Este é o meu código.
<fieldset class="scheduler-border">
<legend class="scheduler-border">Start Time</legend>
<div class="control-group">
<label class="control-label input-label" for="startTime">Start :</label>
<div class="controls bootstrap-timepicker">
<input type="text" class="datetime" id="startTime" name="startTime" placeholder="Start Time" />
<i class="icon-time"></i>
</div>
</div>
</fieldset>
CSS é
fieldset.scheduler-border {
border: 1px groove #ddd !important;
padding: 0 1.4em 1.4em 1.4em !important;
margin: 0 0 1.5em 0 !important;
-webkit-box-shadow: 0px 0px 0px 0px #000;
box-shadow: 0px 0px 0px 0px #000;
}
legend.scheduler-border {
font-size: 1.2em !important;
font-weight: bold !important;
text-align: left !important;
}
Estou recebendo saída como esta
Eu quero saída da seguinte maneira
Eu tentei adicionar
border:none;
width:100px;
para legend.scheduler-border
em CSS. E estou obtendo a saída esperada. Mas o problema é que eu gostaria de adicionar outro <fieldset>
para outros campos. Nesse momento, a largura do texto na legenda é um problema, pois é mais longa que a 100px
.
Então, o que devo fazer para obter a saída como mencionei? (Sem marcar o texto da legenda)
html
css
forms
twitter-bootstrap
Shiju K Babu
fonte
fonte
Respostas:
Isso ocorre porque o Bootstrap, por padrão, define a largura do
legend
elemento como 100%. Você pode corrigir isso alterando seulegend.scheduler-border
para também usar:Exemplo JSFiddle .
Você também precisará garantir que sua folha de estilo personalizada seja adicionada após o Bootstrap para evitar que o Bootstrap substitua seu estilo - embora seus estilos aqui devam ter uma especificidade maior.
Você também pode adicionar um acréscimo
margin-bottom:0;
a ele para reduzir a diferença entre a legenda e o divisor.fonte
margin-bottom: 20px;
nolegend
, que o empurrou acima da borda do conjunto de campos, em vez de colocá-lo na linha. Definir omargin-bottom: 0;
costumelegend.scheduler-border
corrigido com facilidade.No bootstrap 4, é muito mais fácil ter uma borda no conjunto de campos que combina com a legenda. Você não precisa de css personalizado para alcançá-lo, isso pode ser feito assim:
que se parece com isso:
fonte
Eu tive esse problema e resolvi desta maneira:
fonte
Eu tinha uma abordagem diferente, usei o painel de inicialização para mostrar um pouco mais rico. Apenas para ajudar alguém e melhorar a resposta.
Isso dará uma olhada abaixo.
Nota: Precisamos alterar os estilos para usar diferentes tamanhos de cabeçalho.
fonte
Só queria resumir todas as respostas corretas acima em resumo. Porque eu tive que gastar muito tempo para descobrir qual resposta resolve o problema e o que está acontecendo nos bastidores.
Parece haver dois problemas do fieldset com o bootstrap:
bootstrap
define a largura para olegend
como 100%. É por isso que sobrepõe a borda superior dofieldset
.bottom border
para olegend
.Portanto, tudo o que precisamos corrigir é definir a largura da legenda como automática, da seguinte maneira:
fonte