[英]html - CSS: How can I vertically align text and form elements in a label tag?
[英]Vertically align an asterisk (*) with a label in an HTML Form
在我的表单上,我在标签后面放了一个星号 (*) 以将其标记为重要。
问题是它默认垂直对齐为顶部位置。 我希望有某种方式可以将它垂直对齐为中间。
这是它的外观:
注意 * 顶部对齐。
我试过这个,但它不起作用
.imp {
display: inline-table;
vertical-align: middle;
}
使用vertical-align: sub
。
.verified span{ vertical-align:sub; }
<p class="verified"><span>*</span> verified</p>
vertical-align: sub
方法也扩展了容器的高度。 由于您还为问题标记了html
,因此您可以将 html 实体用于本机中间星号。
∗
演示:
这是默认的星号(*) 。 这是中间的星号(*) 。
试试这个: http : //jsfiddle.net/yce0mbux/1/
<span style="line-height:30px;vertical-align:middle" >*</span><label>Some text</label>
before
使用pseudo
元素
.imp { display: block; line-height: 26px; } .imp:before { content: '*'; display: inline-block; vertical-align: middle; }
<div class="imp">Mandatory</div>
如果您没有嵌套的子元素,请像这样添加一个:
<div>
<span id="one">
*
</span>
some text
</div>
您需要同时定义height
和line-height
以达到您想要的效果。
#one{
vertical-align: middle;
display: inline-block;
line-height: 20px;
height: 15px;
}
试试这个方法:
.your-label {
display: inline-table;
vertical-align: middle;
position: relative;
padding-left: 15px; /* Adjust as needed to make space for the asterisks */
/* You need a given dimension to prevent overlap */
}
.your-label:before {
position: absolute;
content: '*';
left: 0; /* Adjust as needed */
top: 3px; /* Adjust as needed */
}
注意:如上所示插入,让您可以根据需要独立定位。
使用relative
而不是absolute
来获得更好的对齐。
.required::before {
position: relative;
content: '*';
left: 0;
top: 0;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.