问题描述
将div置于另一个div之后时,bot div元素中的文本将对齐。
.wrapper {
Box-sizing: border-Box;
padding: 0;
margin: 0;
outline: none;
padding-right: 20px;
}
.Box {
height: 34px;
width: 130px;
padding: 6px 12px;
font-size: 24px;
font-family: Verdana;
color: #555555;
background: rgba(255,255,0) none;
border: 1px solid #cccccc;
border-radius: 4px;
}
.top {
z-index: 2;
position: relative;
}
.underlayer {
top: -48px;
z-index: 1;
position: relative;
background: rgba(255,1);
color: #c8c8c8;
margin:0;
}
<div class="wrapper">
<div type="text" class="Box top">20-123</div>
<div class="Box underlayer">20-123-20</div>
</div>
用输入替换类别为top
的div时,尽管边框仍正确对齐,但文本偏移了1px。
.wrapper {
Box-sizing: border-Box;
padding: 0;
margin: 0;
outline: none;
padding-right: 20px;
}
.Box {
height: 34px;
width: 130px;
padding: 6px 12px;
font-family: Verdana;
font-size: 24px;
color: #555555;
background: rgba(255,1);
color: #c8c8c8;
margin:0;
}
<div class="wrapper">
<input type="text" value="20-123" class="Box top">
<div class="Box underlayer">20-123-20</div>
</div>
我不能全力以赴。这里有人来解释它并建议如何解决这个问题?
解决方法
发生这种情况的原因是如何处理输入。输入元素内的文本字段经过拉伸以适合框的大小。在这种情况下为34px。因此,解决方法是增加div的行高以匹配输入的34px。
setTimeout(nextBatch,0)
.wrapper {
box-sizing: border-box;
padding: 0;
margin: 0;
outline: none;
padding-right: 20px;
}
.box {
height: 34px;
width: 130px;
padding: 6px 12px;
font-family: Verdana!important;
font-size: 24px;
color: #555555;
background: rgba(255,255,0) none;
border: 1px solid #cccccc;
border-radius: 4px;
}
.top {
z-index: 2;
position: relative;
}
.underlayer {
top: -48px;
line-height: 34px;
z-index: 1;
position: relative;
background: rgba(255,1);
color: #c8c8c8;
margin:0;
}
,
如何解决它:
.wrapper {
box-sizing: border-box;
padding: 0;
margin: 0;
outline: none;
padding-right: 20px;
}
.box {
height: 34px;
width: 130px;
padding: 6px 12px;
font-size: 24px;
color: #555555;
background: rgba(255,0) none;
border: 1px solid #cccccc;
border-radius: 4px;
}
.top {
z-index: 2;
position: relative;
}
.underlayer {
top: -48px;
z-index: 1;
position: relative;
background: rgba(255,1);
color: #c8c8c8;
margin:0;
display: block;
tabindex: -1;
}
<div class="wrapper">
<input type="text" value="20-123" class="box top">
<input class="box underlayer" value="20-123-20">
</div>
您将underlayer
从div
更改为input
。它将第二个div的字体更改为输入所使用的字体。由于underlayer
的z-index较低,因此用户永远不会选择它,不,它不会造成任何危险。您还可以将第二个输入的显示设置为block
。
不幸的是,我不知道为什么它最初发生,所以我无法解释。
,您的字体有问题。 底层有一种字体,另一种有另一种字体。
我还添加了一个字体大小并隐藏了第二个框,以便您可以移动底层的顶部位置以与顶部的文本匹配。
这可能不是最好的方法,但它可行。
.wrapper {
box-sizing: border-box;
padding: 0;
margin: 0;
outline: none;
padding-right: 20px;
}
.box {
height: 34px;
width: 130px;
padding: 6px 12px;
font-size: 24px;
color: #555555;
background: rgba(255,0) none;
border: 1px solid #cccccc;
border-radius: 4px;
}
.top {
font-family: sans-serif;
z-index: 2;
position: relative;
}
.underlayer {
font-family: sans-serif;
font-size: 24px;
top: -44px;
left: 1px;
z-index: 1;
border: 0px solid #cccccc;
position: relative;
background: rgba(255,1);
color: #c8c8c8;
margin:0;
}
<div class="wrapper">
<input type="text" value="20-123" class="box top">
<div class="box underlayer">20-123-20</div>
</div>