Shi*_*abu 160 html css forms twitter-bootstrap
我正在使用Bootstrap作为我的JSP
页面.
我想使用<fieldset>
和<legend>
我的形式.这是我的代码.
<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>
Run Code Online (Sandbox Code Playgroud)
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;
}
Run Code Online (Sandbox Code Playgroud)
我得到这样的输出
我希望以下列方式输出
我尝试添加
border:none;
width:100px;
Run Code Online (Sandbox Code Playgroud)
要legend.scheduler-border
在CSS.而且我得到了预期的输出.但问题是我想<fieldset>
为另一个领域添加另一个.那个时候,图例中文本的宽度是一个问题,因为它比它更长100px
.
那么我该如何获得像我提到的输出呢?(没有敲击传说文本)
Jam*_*lly 208
那是因为默认情况下Bootstrap将legend
元素的宽度设置为100%.您可以通过更改您的legend.scheduler-border
使用来解决此问题:
legend.scheduler-border {
width:inherit; /* Or auto */
padding:0 10px; /* To give a bit of padding on the left and right */
border-bottom:none;
}
Run Code Online (Sandbox Code Playgroud)
您还需要确保在 Bootstrap 之后添加自定义样式表以防止Bootstrap覆盖您的样式 - 尽管这里的样式应该具有更高的特异性.
您可能还想添加margin-bottom:0;
它以减少图例和分隔符之间的差距.
Joe*_*tte 57
在bootstrap 4中,在字段集上与图例混合的边框要容易得多.你不需要自定义css来实现它,它可以这样做:
<fieldset class="border p-2">
<legend class="w-auto">Your Legend</legend>
</fieldset>
Run Code Online (Sandbox Code Playgroud)
nvi*_*dot 41
在 Bootstrap 5 中,对应用于图例的默认样式的修改会导致与使用Bootstrap 4获得的渲染不同,然后您必须添加float-none
为标签的类<legend>
:
<fieldset class="border p-2">
<legend class="float-none w-auto">Your Legend</legend>
</fieldset>
Run Code Online (Sandbox Code Playgroud)
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet"/>
<form>
<fieldset class="border p-2">
<legend class="float-none w-auto p-2">Your Legend</legend>
<input type="text">
</fieldset>
</form>
Run Code Online (Sandbox Code Playgroud)
Moh*_*ari 18
我有这个问题,我用这种方式解决了:
fieldset.scheduler-border {
border: solid 1px #DDD !important;
padding: 0 10px 10px 10px;
border-bottom: none;
}
legend.scheduler-border {
width: auto !important;
border: none;
font-size: 14px;
}
Run Code Online (Sandbox Code Playgroud)
Jaj*_*rla 16
我有一个不同的方法,使用自举面板显示它更丰富.只是为了帮助别人并改善答案.
.text-on-pannel {
background: #fff none repeat scroll 0 0;
height: auto;
margin-left: 20px;
padding: 3px 5px;
position: absolute;
margin-top: -47px;
border: 1px solid #337ab7;
border-radius: 8px;
}
.panel {
/* for text on pannel */
margin-top: 27px !important;
}
.panel-body {
padding-top: 30px !important;
}
Run Code Online (Sandbox Code Playgroud)
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<div class="container">
<div class="panel panel-primary">
<div class="panel-body">
<h3 class="text-on-pannel text-primary"><strong class="text-uppercase"> Title </strong></h3>
<p> Your Code </p>
</div>
</div>
<div>
Run Code Online (Sandbox Code Playgroud)
注意:我们需要更改样式才能使用不同的标题大小.
只是想总结以上所有正确的答案。因为我不得不花费大量时间来找出哪个答案可以解决问题以及幕后情况。
引导程序的字段集似乎存在两个问题:
bootstrap
设置宽度到legend
为100%。这就是为什么它覆盖的顶部边框的原因fieldset
。bottom border
对legend
。因此,我们需要解决的所有问题是将图例宽度设置为auto,如下所示:
legend.scheduler-border {
width: auto; // fixes the problem 1
border-bottom: none; // fixes the problem 2
}
Run Code Online (Sandbox Code Playgroud)