我已经尝试了 CSS Selectors中提到的所有可能的方法,但我还没有设法改变仅在fieldset元素内的标签的样式.你能告诉我我做错了什么吗? 视图: div class="container" div class="panel panel-default" d
视图:
<div class="container">
<div class="panel panel-default">
<div class="panel-body">
<div class="row">
<div class="col-md-8 portfolio-item">
<fieldset>
<legend>Details</legend>
<div class="col-md-4 portfolio-item" >
@Html.LabelFor(m => m.ID):
@Html.DisplayFor(m => m.ID)
<br />
@Html.LabelFor(m => m.Name):
@Html.DisplayFor(m => m.Name)
<br />
@Html.LabelFor(m => m.Surname):
@Html.DisplayFor(m => m.Surname)
<br />
</div>
<div class="col-md-8 portfolio-item" >
@Html.LabelFor(m => m.Department):
@Html.DisplayFor(m => m.Department)
<br />
@Html.LabelFor(m => m.Address):
@Html.DisplayFor(m => m.Address)
<br />
@Html.LabelFor(m => m.City):
@Html.DisplayFor(m => m.City)
<br />
</div>
</fieldset>
</div>
</div>
</div>
</div>
</div>
我尝试了很多不同的CSS选择器组合,以便仅将样式应用于fieldset元素内的标签,如下所示:
CSS:
fieldset > label {
text-align: left !important;
}
fieldset + label {
text-align: left !important;
}
div.row fieldset > label {
text-align: left !important;
}
更新:这里是渲染的Html代码
<div class="container">
<div class="panel panel-default">
<div class="panel-body">
<div class="row">
<div class="col-md-8 portfolio-item">
<fieldset>
<legend>Details</legend>
<div class="col-md-4 portfolio-item">
<label for="ID">ID</label>:
200
<br>
<label for="Name">Name</label>:
Smith
<br>
<label for="Surname">Surname</label>:
Boyton
<br>
</div>
<!-- removed for brevity -->
</fieldset>
</div>
</div>
</div>
</div>
</div>
这很简单
fieldset label {
text-align: left;
}
你的css不工作的原因是因为你的目标是错误的元素.你想要的是fieldset的一般后代.所以任何级别的孩子都会受到影响.
您简化的HTML是:
<fieldset> <legend /> <div> <label/> </div> </fieldset>
fieldset> label正在查找一个标签,该标签是fieldset的直接子节点.但既然你把它包裹在一个div中,那就不是这样了.
fieldset标签正在寻找一个标签,它是fieldset的兄弟(在同一级别上).标签是fieldset的子项,因此此规则不会以您想要的为目标.
有关CSS中选择器的更多信息,请快速阅读https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_started/Selectors.
小提示:一般情况下,您希望避免使用!important声明,因为它可能会覆盖您将来要进行的任何更改.
