Googleの Material Design Lite ライブラリを使用して、画面の中央にログインフォームを簡単に取得できるようにしています。
私は何度も繰り返しましたが、これが私が思いついた最高の方法です:
<div class="mdl-cell--12-col mdl-grid">
<div class="mdl-cell mdl-cell--4-col mdl-cell--2-col-tablet"> </div>
<div class="mdl-grid mdl-cell--4-col">
<div class="mdl-textfield mdl-js-textfield mdl-cell-12-col">
<input class="mdl-textfield__input" type="text" id="username" />
<label class="mdl-textfield__label" for="username">Username</label>
</div>
<div class="mdl-textfield mdl-js-textfield mdl-cell-12-col">
<input class="mdl-textfield__input" type="password" id="password" />
<label class="mdl-textfield__label" for="password">Password</label>
</div>
</div>
<div class="mdl-cell mdl-cell--4-col mdl-cell--2-col-tablet"> </div>
</div>
すべての画面サイズで中央フォームを実現するより良い方法はありますか?
のdivは、本当に不愉快です!
「mdl-layout-spacer」の使用方法: codepen を参照
<div class="mdl-grid">
<div class="mdl-layout-spacer"></div>
<div class="mdl-cell mdl-cell--4-col">This div is centered</div>
<div class="mdl-layout-spacer"></div>
</div>
または、CSSソリューションが必要な場合:中央揃えする列を含むグリッドに追加のクラスを追加します。 codepen を参照してください
<div class="mdl-grid center-items">
<div class="mdl-cell mdl-cell--4-col">This div is centered</div>
</div>
.mdl-grid.center-items {
justify-content: center;
}
サイズ変更時に両方のオプションがナイスになります。
'mdl-typography--text-center'
を使用できます:
<div class="mdl-grid">
<div class="mdl-cell mdl-cell--4-col mdl-typography--text-center">
My center div
</div>
</div>
mdl-cell--N-offset
クラスを使用しないのはなぜですか? https://getmdl.io/components/index.html#layout-section/grid のコンポーネント->レイアウト->グリッド->設定オプションで指摘されているように:
mdl-cell--Nオフセット
セルの前に空白のN列を追加します
<div class="mdl-grid">
<div class="mdl-cell mdl-cell--4-col mdl-cell--4-offset">
<p>Centered content!</p>
</div>
</div>
これは動作するはずです。
これらのCSSルールを追加するだけです。
.mdl-layout {
align-items: center;
justify-content: center;
}
次に、このコンテナにコンテンツを配置します。
<div class="mdl-layout">
<!-- Your Content -->
</div>
GoogleのMaterial Design Liteライブラリに慣れていませんが、列をラップする「コンテナ」要素を作成しないのはなぜですか。例:
CSS:
.customContainer {
max-width: 960px;
margin: 0 auto;
}
HTML:
<div class="customContainer">
...
</div>
その後、そこから必要に応じて全幅の列を配置できます。