提问人:Nick 提问时间:9/6/2012 最后编辑:Nick 更新时间:9/19/2012 访问量:130
在触发表单提交之前保持 :focus
Keeping :focus before form submit is triggered
问:
我用下面的代码创建了一个:
HTML格式:
<form>
<div class="searchInputBox">
<input type="text" tabindex="99" class="searchInput">
<input type="submit" tabindex="100" class="searchbutton">
</div>
</form>
CSS格式:
.searchInputBox {
float: left;
width: 270px;
}
.searchInput:focus + .searchbutton {
visibility: visible;
}
.searchInput:focus {
background: url("http://lostcoastoutpost.com/media/img/icons/toolbar_find.png") no-repeat scroll 219px 6px rgba(255, 255, 255, 0.4);
color: #000000;
padding: 7px 35px 7px 15px;
width: 195px;
}
.searchInput {
background: url("http://lostcoastoutpost.com/media/img/icons/toolbar_find.png") no-repeat scroll 10px 6px rgba(255, 255, 255, 0.3);
border: 1px solid #ccc;
color: #D7D7D7;
float: left;
padding: 7px 15px 7px 35px;
width: 150px;
}
.searchbutton {
background: none repeat scroll 0 0 transparent;
border-color: transparent;
color: transparent;
cursor: pointer;
float: left;
height: 16px;
left: -26px;
margin: 6px 0;
position: relative;
visibility: hidden;
width: 16px;
}
在输入文本区域获得焦点后,提交按钮在放大镜所在的区域中变得可见。但是,单击它会导致文本输入失去焦点,而不是提交表单。
有什么办法可以解决这个问题吗?最好只用CSS...
答:
0赞
Passerby
9/6/2012
#1
你的按钮总是在那里,问题是当你失去焦点时,它会向后收缩,导致你向后收缩,并连锁导致你的按钮向左移动。input
DIV
更不用说背景图片也向后晃动了......
从你的背景图片来看,这可能是一个单字段的搜索表单,它可能适合强制用户在搜索前输入一些东西,所以这里有一个小技巧:
小提琴:
CSS格式:
.searchInput:valid + .searchbutton {
visibility:visible;
}
.searchInput:focus, .searchInput:valid {
background: url("http://lostcoastoutpost.com/media/img/icons/toolbar_find.png") no-repeat scroll 219px 6px rgba(255, 255, 255, 0.4);
color: #000000;
padding: 7px 35px 7px 15px;
width: 195px;
}
HTML格式:
<input type="text" tabindex="99" pattern=".+" required class="searchInput">
评论