2016-07-22 5 views
2

こんにちは皆私は、このフォームを上から下へと左から中央に配置するためにログインフォームを使用しています。私はtransformを使用しています:translate(-50%、-50%);それはクロム、サファリ、モバイルのfirefox、そしてデスクトップでもうまく機能しています。でもうまくいきませんオペラブラウザオペラブラウザ用のウェブキットも追加しました。ここで すべてのブラウザとすべてのモバイルデバイスでフォームを中央に配置する方法

がある私の demo to play with css ここにあるHTMLコード

<div class="container"> 
       <div class="login-form-section"> 
        <form class="login-form"> 
         <h1 class="login-text">Login</h1> 
         <input type="email" class="input-lg form-control login-input" placeholder="Email" required="" autofocus=""> 
         <input type="password" class="form-control login-input input-lg" placeholder="Password" required=""> 
         <button class="btn btn-lg btn-yellow-submit btn-block" type="submit"> 
         Login 
         </button> 
         <a class="forgot-pass-link" href="forgot-password.html"><span class="f-link">Forgot Password</span></a> 
         <a href="order.html" class="register-link"><span class="r-link">Register and Subscribe</span></a> 
        </form> 
       </div> 
      </div> 

と私のCSS

.login-form { 
    max-width: 375px; 
    background: black; 
    padding: 25px; 
    position: absolute; 
    top: 50%; 
    left: 50%; 
    transform: translate(-50%,-50%); 
    -ms-transform: translate(-50%,-50%); 
    /* -webkit-transform: translate(-50%,-50%); */ 
    -o-transform: translate(-50%,-50%); 
    -moz-transform: translate(-50%,-50%); 
    width: 100%; 
    display: block; 
} 

はオペラのようなすべての主要なブラウザでモバイル用のフォームだけでなく、デスクトップを中央に彼らの他の方法であり、 firefoxのクロムとサファリ?今、私のコードはオペラ以外のすべてでうまく動作しています。私はオペラのために書かれたWebkitも持っています。提案をお願いします。ありがとうございました。

私はすでにmargin:0 auto;それは垂直方向の中心のためだけに中心を置きます私は再度ブラウザにブラウザのveriesをマージントップまたはパディングトップを調整する必要があります。

+0

私はあなたが 'Media Queries'を使ってすべての中でフォームを中央に置くべきだと思いますブラウザとモバイルデバイス。 – mmushtaq

+0

エラーは見つかりませんでした。オペラ座でも問題なく動作します。 – frnt

+0

ここに例があります** [Fiddle](http://jsfiddle.net/mmushtaq/hABGX/109/)** – mmushtaq

答えて

0

これは、あなたの質問に答えていませんが、ベンダー接頭辞のルールは、この順序で使用する必要があります。

-ms-transform: translate(-50%,-50%); 
/* -webkit-transform: translate(-50%,-50%); */ 
-o-transform: translate(-50%,-50%); 
-moz-transform: translate(-50%,-50%); 
transform: translate(-50%,-50%); 

標準(プレフィックス無料)のルールがために、すべてのベンダー接頭辞ルールの後、最後に来なければなりませんプロパティ。

質問については、Operaでうまくいくようです。古いAndroidバージョンで正しく動作しない場合は、Modernizrを使用して、これらのバージョンでサポートされていない機能を検出し、それに応じてCSSの回避策を使用することができます。

+0

に細かい作業する提案をありがとうございました私は財産ではない変換を知っています中央でフォームを作成するのではなく、オペラでうまく動作します。画面の右側に移動します。 –

+0

@SudarshanKalebereその特定のブラウザでは、「margin-left」を負の値として使用できます。 –

+0

どうすればいいですか?私はすべてのために私が持っている唯一のコードは、あなたが私にオペラ・マージンを残すことによって試してみることができる答えで投稿したものであることを意味します。 –

0

HTML

<div class="container"> 
       <div class="login-form-section"> 
        <form class="login-form"> 
         <h1 class="login-text">Login</h1> 
         <input type="email" class="input-lg form-control login-input" placeholder="Email" required="" autofocus=""> 
         <input type="password" class="form-control login-input input-lg" placeholder="Password" required=""> 
         <button class="btn btn-lg btn-yellow-submit btn-block" type="submit"> 
         Login 
         </button> 
         <a class="forgot-pass-link" href="forgot-password.html"><span class="f-link">Forgot Password</span></a> 
         <a href="order.html" class="register-link"><span class="r-link">Register and Subscribe</span></a> 
        </form> 
       </div> 
      </div> 

とCSSがある

.login-form-section { 
    width: 100%; 
    background: black; 
    position: relative; 
    height: 200px; 

} 
.login-form{ 
    position: absolute; 
    width: 100%; 
    padding: 20px 0; 
    top: 50%; 
    left: 50%; 
    background: GRAY; 
    -moz-transform: translate(-50%, -50%); 
     -o-transform: translate(-50%, -50%); 
     -ms-transform: translate(-50%, -50%); 
     -webkit-transform: translate(-50%, -50%); 
     transform: translate(-50%, -50%); 
     text-align: center; 


} 
.login-form h1{margin: 0; margin-bottom: 10px;} 
+0

どのように問題を解決しますか? –

+0

それはまったく中心ではありません。 –

+0

私はCSS .loginファイル形式セクション{ 幅更新:100%。 背景:黒; 位置:相対; 身長:200px; } .loginファイル形式{ 位置:絶対。 幅:100%; 埋め込み:20ピクセル0; トップ:50%; 左:50%; 背景:グレー; -moz-transform:翻訳(-50%、-50%); -o-transform:translate(-50%、-50%); -ms-transform:translate(-50%、-50%); -webkit-transform:翻訳(-50%、-50%); トランスフォーム:translate(-50%、-50%); text-align:center; } .loginファイル形式H1 {マージン:0。マージン下:10pxの;} –

0

あれば、それは次のように行うことができますフルページのマスク(その背景を)持っている必要があります。

CSS:

.login-form-section { 
    position: fixed; 
    top: 0; 
    right: 0; 
    bottom: 0; 
    left: 0; 
    overflow: auto; 
    background: #fff; 

    text-align: center; 
} 

.login-form-section:before { 
    content: ''; 
    display: inline-block; 
    height: 100%; 
    vertical-align: middle; 
} 

.login-form { 
    max-width: 375px; 
    background: black; 
    padding: 25px; 
    display: inline-block; 
    text-align: left; 
    width: 100%; 
    vertical-align: middle; 
} 
関連する問題