我试图覆盖两个表单元素的默认表单样式,以便文本框和按钮都是相同的高度并排并排,这样它们看起来像是一个元素. 在某些浏览器中它看起来很好但在某些浏览器中它们是一个或两个垂
在某些浏览器中它看起来很好但在某些浏览器中它们是一个或两个垂直的像素.
这是一个jsfiddle演示. OS X上的Opera和Firefox给了我一些问题.
http://jsfiddle.net/QS3ec/6/
*, *:before, *:after {-moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box;} input[type="text"] { background-color: #fafafa; padding: 7px; font-family: helvetica, arial, sans-serif; font-size: 1.2em; margin-bottom: 20px; display: block; border: solid 2px #bbb; color: #6f6f6f; } input[type="submit"] { background-color: #fafafa; font-family: helvetica, arial, sans-serif; font-size: 1.0em; font-weight:bold; padding: 7px; color: #6f6f6f; } input[type="submit"]:hover { background-color: #ff379f; color: #fafafa; } #subscription-email-text-field { display:inline-block; font-size:0.9em; font-weight:400; border:0; width:250px; height:32px; margin:0; } #subscribe-button { display:inline-block; border-width:0px 0px 0px 1px; margin:0; height:32px; } <div style="background-color:black; padding:20px;"> <form> <input type="text" id="subscription-email-text-field" name="email" placeholder="Enter Email for Newsletter"><!-- --><input type="submit" id="subscribe-button" value="subscribe"> </form> </div>一个简单的解决方法是修改以下CSS规则:
#subscription-email-text-field { vertical-align: top; display:inline-block; font-size:0.9em; font-weight:400; border:0; width:250px; height:32px; margin:0; }
添加vertical-align:top可以处理基线对齐.
请参阅演示:http://jsfiddle.net/audetwebdesign/EmAnr/
脚注:
要在按钮元素上添加左边框,请记住添加边框样式,
可以这样做:
#subscribe-button { display:inline-block; border: 1px solid black; border-width:0px 0px 0px 1px; margin:0; height:32px; }