<p>或</p> <div> </div>上的叠加输入

时间:2013-09-26 10:03:41

标签: html css html5 css3

希望这是一个简单的问题。

我有一个<p>,它有一些造型,使它看起来像英国登记牌。

我想覆盖输入字段,以便用户输入注册表。

Here's my fiddle

即使将元素更改为绝对值,我也很难获得叠加效果。

HTML:

<div>
   <p class="reg">007 ABC</p>
   <input id="vehicleReg" type="text" placeholder="Enter Vehicle Registration" />
</div>

CSS:

.reg {
background-color: #ec0;
background: -webkit-linear-gradient(#ec0, #ca0);
border-radius: 6px;
box-shadow: 0 1px 3px rgba(0,0,0,.75);
font-family: number_plate;
display: inline-block;
/*padding: 0 50px 0 100px;*/
width: 220px;
position: relative;
font-size: 28px;
font-weight: bold;
line-height: 50px;
/*margin: 100px;*/
color: black;
/*    text-indent: 10px;*/
}

.reg::after {
background-color: rgba(255,255,255,.25);
color: #ec0;
content: "\25CC";
font-family: sans-serif;
font-size: 32px;
left: 0;
height: 50%;
line-height: 70px;
width: 100%;
padding-left: 14px;
position: absolute;
}

.vehicleReg { 
position: absolute;
right: 13%;
bottom: 17px;
width: 64%;
height: 31px;
background-color: transparent;
text-align:center;
}

由于

6 个答案:

答案 0 :(得分:3)

有点慢,但以下内容将保留您的小欧元图像,并将输入置于最高点之上:

<强> HTML

<div class="reg"><input id="vehicleReg" type="text" placeholder="Reg No" /></div>

<强> CSS

.reg {
    background-color: #ec0;
    background: -webkit-linear-gradient(#ec0, #ca0);
    border-radius: 6px;
    box-shadow: 0 1px 3px rgba(0,0,0,.75);
    display: inline-block;
    /*padding: 0 50px 0 100px;*/
    width: 220px;
    position: relative;
    /*margin: 100px;*/
    color: black;
/*    text-indent: 10px;*/
    text-align:center
}

.reg::after {
    text-align:left;
    background-color: rgba(255,255,255,.25);
    color: #ec0;
    content: "\25CC";
    font-family: sans-serif;
    font-size: 32px;
    top:0;
    left: 0;
    height: 50%;
    line-height: 70px;
    width: 100%;
    padding-left: 14px;
    position: absolute;
}

#vehicleReg { 
   width: 70%;
    margin:auto;
   background-color: transparent;
    border:0;
    font-family: number_plate;
    font-weight: bold;
    line-height: 50px;
    font-size: 28px;
    text-transform:uppercase;
    position:relative; z-index:2;
}

Example

答案 1 :(得分:2)

此外,您可以设置占位符文本的样式。

placeholder {
font-family: number_plate;
font-weight: bold;
font-size: 28px;
text-transform:uppercase;
color:black;
text-align:center;   

}

JSFiddle

答案 2 :(得分:1)

如果您绝对定位输入,则需要相对于容器div进行定位,在这种情况下。

例如:

<div class="container">
  <p class="reg">007 ABC</p>
  <input id="vehicleReg" type="text" placeholder="Enter Vehicle Registration" />
</div>

.container { 
   position: relative;
}

看到这个: DEMO

答案 3 :(得分:1)

你的意思是这样吗?

http://jsfiddle.net/zZUDN/8/

<div class="reg">
    <input id="vehicleReg" type="text" placeholder="Enter Vehicle Registration" />
</div>

.reg {
  border:none;
  background-color: #ec0;
  background: -webkit-linear-gradient(#ec0, #ca0);
  border-radius: 6px;
  box-shadow: 0 1px 3px rgba(0,0,0,.75);
  font-family: number_plate;
  display: inline-block;
  /*padding: 0 50px 0 100px;*/
  width: 220px;
  position: relative;
  font-size: 28px;
  font-weight: bold;
  line-height: 50px;
  /*margin: 100px;*/
  color: black;
  /*    text-indent: 10px;*/
}

.reg::after {
  background-color: rgba(255,255,255,.25);
  color: #ec0;
  content: "\25CC";
  font-family: sans-serif;
  font-size: 32px;
  left: 0;
  height: 50%;
  line-height: 70px;
  width: 100%;
  padding-left: 14px;
  position: absolute;
}

#vehicleReg { 
  width:100%;
  line-height:45px;
  font-size:28px;
  border:none;
  background-color: transparent;
  text-align:center;
}

答案 4 :(得分:1)

略有不相关但如果您在用户输入注册牌号之后,请查看使用输入属性模式并将其最大长度设为8个字符。

<input type="text" pattern="[A-Za-z0-9]{2}[0-9]{2}[ ][A-Za-z]{3}" maxlength="8" />

强制执行注册需要4个字母数字字符,空格和3个字符的模式。

(HTML5的一部分仅适用于最新的浏览器.IE很难赶上)

答案 5 :(得分:0)

更改

.vehicleReg { 
 position: absolute;
 right: 13%;
 bottom: 17px;
 width: 64%;
 height: 31px;
 background-color: transparent;
 text-align:center;
}

#vehicleReg { 
 position: absolute;
 right: 13%;
 bottom: 17px;
 width: 64%;
 height: 31px;
 background-color: transparent;
 text-align:center;
}

vehicleReg 是输入字段的ID,而不是类。