1

編集:これは jsfiddle デモです。

編集 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=""/>
      &nbsp;<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>

ここで何が間違っていますか?

4

6 に答える 6

1

これを機能させる唯一の方法はposition: fixed、検索ボタンと検索バー ( s) から を削除してから、要素inputに追加することでした。position: relative; top: -9px;.searchButton

正直なところ、汚いと感じます。なぜそれが必要なのかわかりません。

とにかく、JS Fiddle demo .

于 2012-04-17T21:23:59.083 に答える
0

div内でフォームをワープし、サイズを指定し、左右のマージンを自動に設定できます

http://jsfiddle.net/chepe263/WbTLr/

于 2012-04-17T21:17:22.400 に答える
0

このクラスを CSS に追加してみてください。

.appnitro { margin: 0 auto; }

フォームに幅を設定する必要がある場合があります。

更新時に Ctrl+F5 を押します =)

于 2012-04-17T21:12:39.430 に答える
0

コードを jsfiddle で実行したところ、実際には検索バーが完全に中央に配置されていることがわかりました。送信ボタンはその右側にとどまります。position:fixedクラスから削除しinput.searchButtonて追加:

position: relative;
bottom: 8px;

これはposition:fixed、全体を削除すると中央に移動しますが、送信ボタンが少し下に移動するためです。だから、それはそれを微調整するための小さなハックです.

jsFiddle の動作デモ

于 2012-04-17T21:22:02.867 に答える
0

これは、何かを中央に配置する必要があるときに行う方法です。

スタイル:

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とにかく、ボタンにも追加する必要があると思います...

于 2012-04-17T21:25:11.373 に答える
-1

フォームを中央のタグで囲むことができます。

于 2012-04-17T21:15:15.263 に答える