【发布时间】:2014-08-17 23:22:21
【问题描述】:
我有一些绝对定位的文本输入元素,我想给它们一些左右填充,因为这样可以更容易地将光标放在值的末尾进行编辑。当我给输入左和/或右填充时,文本框变得太长。为什么会这样?如何同时获得准确的定位和填充?
html
<div id="container">
<input type="text" class="no-padding" style="top:10%; left:05%; width:29%; height:10%;" value="1000">
<input type="text" class="no-padding" style="top:10%; left:35%; width:29%; height:10%;" value="2000">
<input type="text" class="no-padding" style="top:10%; left:65%; width:29%; height:10%;" value="3000">
<input type="text" class="padding" style="top:30%; left:05%; width:29%; height:10%;" value="1000">
<input type="text" class="padding" style="top:30%; left:35%; width:29%; height:10%;" value="2000">
<input type="text" class="padding" style="top:30%; left:65%; width:29%; height:10%;" value="3000">
</div>
css
#container {
height: 300px;
width: 600px;
border: 1px solid dimgray;
position: relative;
}
input {
box-shadow: inset 0px 0px 0px 1px rgba(105, 105, 105, 1);
position: absolute;
border: none;
text-align: right;
}
.no-padding {
padding: 0;
}
.padding {
padding-left: 4px;
padding-right: 4px;
}
演示:jsfiddle
【问题讨论】:
-
您是否绝对肯定需要绝对职位?由于您的宽度是固定的,难怪:任何填充都会增加 div 的宽度。另外,您正在混合百分比和像素,因此您是在自找麻烦。为什么不使用 Bootstrap 网格系统?
-
我需要绝对位置,因为输入会覆盖背景图像并且具有我无法控制的任意位置。
标签: html css position padding absolute