3

希望是一个简单的问题。

我有一个<p>上面有一些样式,使它看起来像英国车牌。

我想覆盖一个输入字段,以便用户可以输入一个 reg。

这是我的小提琴

即使将元素更改为绝对值,我也很难获得覆盖。

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;
}

谢谢

4

6 回答 6

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;
}

例子

于 2013-09-26T10:26:29.133 回答
2

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

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

}

JSFiddle

于 2013-09-26T10:50:32.220 回答
1

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

例如:

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

.container { 
   position: relative;
}

看到这个: 演示

于 2013-09-26T10:19:04.063 回答
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;
}
于 2013-09-26T10:19:47.867 回答
1

稍微不相关,但如果您希望用户输入车牌号,请查看使用输入属性模式并为其提供最大长度为 8 个字符。

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

这强制要求注册需要 4 个字母数字字符一个空格和 3 个字符的模式。

(部分 HTML5 只适用于最新的浏览器,IE 赶不上)

于 2013-09-26T10:27:54.760 回答
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,而不是类。

于 2013-09-26T10:23:02.877 回答