23

ログインフォームを作成していますが、画面の中央にユーザー名とパスワードのフィールドが表示されます。また、ZurbFoundationパッケージを使用してこのフォームを作成しています。私は物事を垂直に中心に置くのに多くの問題を抱えています。

これが私のコードです:

<!DOCTYPE html>

<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]>    <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]>    <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->

    <head>
      <meta charset="utf-8" />

      <!-- Set the viewport width to device width for mobile -->
      <meta name="viewport" content="width=device-width" />
      <title>
            Registration
        </title>

         <!-- Included CSS Files (Compressed) -->
          <link rel="stylesheet" href="stylesheets/foundation.min.css">
          <link rel="stylesheet" href="stylesheets/app.css">
          <link rel="stylesheet" href="stylesheets/main.css">

          <script src="javascripts/modernizr.foundation.js"></script>

          <!-- IE Fix for HTML5 Tags -->
          <!--[if lt IE 9]>
            <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
          <![endif]-->
    </head>
        <nav class="top-bar">
         <ul>
            <li class="name"><h1><a href="#">Title</a></h1></li>
            <li class="toggle-topbar"><a href="#"></a></li>
        </ul>
        <section>
            <ul class="left">
                <li><a href="#">Link</a></li>
            </ul>
            <ul class="right">
                <li><a href="#">Link</a></li>
            </ul>
        </section>
        </nav>
    <body>
        <div class="row" id="parent">
            <div class="six columns" id="child">
                <form id = "register">
                    <input type="text">

                </form>
            </div>
        </div>



        <script src="javascripts/jquery.foundation.topbar.js"></script>
        <!-- Included JS Files (Compressed) -->
        <script src="javascripts/jquery.js"></script>
        <script src="javascripts/foundation.min.js"></script>
        <!-- Initialize JS Plugins -->
        <script src="javascripts/app.js"></script>
    </body>
</html>

そして、私が遊んだことがあるが、まだ機能していないいくつかのCSS:

body {
    /*background-image: url('../images/gplaypattern.png');*/
    background: red;
}

#register {
    background-color:  black;
    width:80%;
}

#parent {
    position: absolute; 
    left: 50%; 
    top: 50%; 
    height: 80px;
}

#child {
    height: 75px;
    position:absolute;
    top: 50%;
    background: green;
}

ひどいことに、何かの高さを動的に変更すると(つまりheight: 30%;)機能しないのはなぜですか?

4

3 に答える 3

30

アップデート

この機能は、Foundationの次期バージョンにコンポーネント(xy-center)として含まれています。Githubの詳細。

古いバージョンのFoundationを使用している場合、CSSトリックの中央揃え方法を使用すると、最小限のCSS/HTMLマークアップでサインインフォームが垂直方向および水平方向に中央揃えになります。

HTML

<div class="row" >
    <div class="small-12 medium-6 columns" id="login">
        <form >
            <div class="row collapse">
                <div class="small-12 medium-5 columns">
                    <input type="text" name="username" placeholder="Username" />
                </div>
                <div class="small-12 medium-5 columns">
                    <input type="password" name="password" placeholder="Password" />
                </div>
                <div class="small-12 medium-2 small-centered medium-uncentered columns">
                  <a href="#" class="button postfix">Go</a>
                </div>
            </div>
        </form>
    </div>
</div> 

CSS

#login {
    position: absolute;
    left: 50%;
    top: 50%;

    /*
    *  Where the magic happens
    *  Centering method from CSS Tricks
    *  http://css-tricks.com/centering-percentage-widthheight-elements/
    */
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -o-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
}

結果

サインインフォームは、画面サイズに関係なく、垂直方向と水平方向の中央に配置されたままになります。これが結果のスクリーンショットです。

ここに画像の説明を入力してください

そして、動作するjsFiddle

于 2014-02-23T17:30:11.653 に答える
6

Foundationは垂直方向の配置を適切に処理しません:https ://github.com/zurb/foundation/issues/411 。

垂直方向のパディングで近似することはできますが、動的コンテンツを回避するための適切な方法はありません。

次のjsFiddle(私が作成したものではありません)は、

div {
display: table-cell;
vertical-align: middle;
height: 50px;
border: 1px solid red;
}

http://jsfiddle.net/53ALd/6/-ただし、他のFoundationCSSとは連動しません。

于 2013-07-24T14:23:25.540 に答える
0

問題は、HTML/CSSが垂直方向のセンタリングを実際にうまく処理できないことです。Zurb's Foundationは、この点であなたを助けたり傷つけたりするつもりはありません。

この非常によく似た質問を参照してください。垂直方向および水平方向に中央揃えのhtmldivを作成する

于 2012-10-22T13:25:34.590 に答える