编辑 2:我认为它也被我正在使用的 Twitter Bootstrap 样式表覆盖。我会弄清楚那里出了什么问题。谢谢你们的帮助,伙计们。
这是我现在的表单:
理想情况下,我希望搜索栏和提交按钮居中(搜索栏左侧和按钮右侧的边距相等)。
我的 CSS 似乎不起作用:
body {
text-align:center;
padding-top:5%;
background:url(/img/bg.png);
background-position:center;
background-position:top;
background-repeat:no-repeat;
background-color:0b334c;
}
.searchContainer {
width:440px;
margin-left:auto;
margin-right:auto;
margin-top: 5%;
zoom:1;
}
.searchBox {
border: 1px solid #000000;
padding:10px;
margin: 0 auto;
height:auto;
width:auto;
-webkit-border-radius:7px;
-moz-border-radius:7px;
border-radius:7px;
background-color:#6eb0d9;
background-color:#6eb0d9;
background-repeat:repeat-x;
background-image:-khtml-gradient(linear, left top, left bottom, from(#9cd1e9), to(#6eb0d9));
background-image:-moz-linear-gradient(top, #9cd1e9, #6eb0d9);
background-image:-ms-linear-gradient(top, #9cd1e9, #6eb0d9);
background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #9cd1e9), color-stop(100%, #6eb0d9));
background-image:-webkit-linear-gradient(top, #9cd1e9, #6eb0d9);
background-image:-o-linear-gradient(top, #9cd1e9, #6eb0d9);
background-image:linear-gradient(top, #9cd1e9, #6eb0d9);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#9cd1e9', endColorstr='#6eb0d9', GradientType=0);
}
.searchBox form {
display:inline-block;
}
.searchBox h2 {
letter-spacing:-0.05em;
padding-bottom:8px;
}
.searchBar {
border: double;
height:31px;
width:357px;
background-color:#fff;
background-color:#fff;
background-repeat:repeat-x;
background-image:-khtml-gradient(linear, left top, left bottom, from(#eee), to(#fff));
background-image:-moz-linear-gradient(top, #eee, #fff);
background-image:-ms-linear-gradient(top, #eee, #fff);
background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #eee), color-stop(100%, #fff));
background-image:-webkit-linear-gradient(top, #eee, #fff);
background-image:-o-linear-gradient(top, #eee, #fff);
background-image:linear-gradient(top, #eee, #fff);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eee', endColorstr='#fff', GradientType=0);
}
input.searchButton {
position:fixed;
height: 31px;
width: 33px;
cursor: pointer;
border: none;
background:url(../img/searchButton-Off.png) no-repeat;
}
input.searchButton:hover {
position:fixed;
height: 31px;
width: 33px;
cursor: pointer;
border: none;
background:url(../img/searchButton-On.png) no-repeat;
}
<div class="searchBox">
<h2 style="color:#000000;">Search</h2>
<form id="form_297586" class="appnitro" method="get" action="results.php">
<input id="keywords" name="keywords" class="searchBar" title="What do you like...?" type="text" maxlength="255" value=""/>
<input type="submit" class="searchButton" value="" />
<input type="hidden" name="form_id" value="297586" />
<input type="hidden" name="src" value="n" />
<input type="hidden" name="fancy" value="y" />
</form>
</div>
我在这里做错了什么?
我可以让它工作的唯一方法是从搜索按钮和搜索栏(
position: fixed
)中删除input
,然后将position: relative; top: -9px;
添加到.searchButton
元素。
说实话,感觉很脏;我不知道为什么需要这样做。
无论如何,一个 JS Fiddle 演示。
尝试将此类添加到您的 css 中:
.appnitro { margin: 0 auto; }
您可能需要在表单上设置宽度。
刷新时按Ctrl+F5 =)
您可以在 div 内扭曲表单,指定大小并将左右边距设置为自动
我在 jsfiddle 上运行了你的代码,我发现它实际上是你的搜索栏完全居中的。提交按钮就位于其右侧。 从
position:fixed
类中删除 input.searchButton
并添加:
position: relative;
bottom: 8px;
这是因为,如果删除
position:fixed
,整个内容就会居中,但提交按钮会向下移动一点。所以这是一个小小的技巧来推动它。
当我需要将某些东西居中时,我就是这样做的:
div.centera {
float: right;
left: -50%;
position: relative;
}
div.centerb {
float: right;
left: 50%;
position: relative;
}
<div class="centera">
<div class="centerb">
<div>Should be in center</div>
</div>
</div>
尝试过,在添加
float: left;
为 <input id="keywords"...
后,它在铬中效果很好
无论如何,我认为
float: left
也应该添加按钮...
当我需要将某些东西居中时,我就是这样做的:
Styles:
div.centera {
width:'100%',
height:500px,
justify-content:'center',
align-items:'center'
},
p{
text-align:'center',
align-self:'center'
}
And centering contents:
<div class="centera">
<p>center Text</p>
</div>
您可以将表单包裹在中心标签中。