ウィンドウのサイズ変更時のCSSグリッドレイアウトの奇妙な動作

ポップアスタッシュ

Windows 7のChromeバージョン60.0.3112.78(公式ビルド)(64ビット)

CSSグリッドのレイアウトを調べていますが、Chromeで奇妙な問題が発生しました(Firefoxでは正常に機能します)。ページの水平方向と垂直方向の中央に配置する簡単な登録フォームを作成しました。

3つのネストされたグリッドを使用してレイアウトを構成します。

html {
  height: 100%;
}
body {
  font-family: 'Rubik', sans-serif;

  margin: 0;
  padding: 0;
  background: #aaffff;
  height: 100%;
}
#root {
  height: 100%;
}

button,
input,
label {
  font-family: 'Rubik', sans-serif;
  font-weight: 600;
}
label {
  display: inline-block;
  text-align: left;
}
.formGroup {
  display: inline-block;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
a:link {
  text-decoration: none;
  color: inherit;
}
a:hover {
  text-decoration: underline;
}

*:focus {
  outline-width: 3px;
  outline-color: rgba(66, 66, 66, 0.7);
  outline-style: dashed;
  outline-offset: 3px;
}

.Input {
  color: #333;
  border: none;
  height: 2em;
  padding: 5px 10px;
  display: block;
  /* width: 100%; */
}
.Input:focus {
  outline-width: 3px;
  outline-color: rgba(66, 66, 66, 0.7);
  outline-style: dashed;
  outline-offset: 3px;
}

.Button {
  display: inline-block;
  font-weight: 800;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
  padding: 20px 40px;
  border-radius: 4px;
  border: none;
  background: none;
  position: relative;
  text-transform: uppercase;
  margin: 15px 30px;
}

.Button.primary {
  background: #0000ff;
  box-shadow: 0 9px #000088;
  color: #fff;
}
.Button.primary:hover {
  top: 5px;
  box-shadow: 0 4px #000088;
}
.Button.primary:active {
  top: 9px;
  box-shadow: none;
}
.Button.primary:focus {
  outline-width: 3px;
  outline-color: rgba(0, 0, 255, 0.7);
  outline-style: dashed;
  outline-offset: 3px;
}

.RegistrationForm-container {
  display: grid;
  grid-template-columns: 3% auto 3%;
  grid-template-rows: 100px 25% auto 25%;
}
.RegistrationForm-container .copy {
  grid-column-start: 2;
  grid-row-start: 2;
}

.RegistrationForm-container form {
  grid-column-start: 2;
  grid-column-end: 3;
  grid-row-start: 3;
  display: grid;
  grid-template-columns: 1% auto 1%;
  grid-template-rows: 25px auto 25px;
}

.RegistrationForm-container form .inner {
  grid-column-start: 2;
  grid-column-end: 3;
  grid-row-start: 2;
  grid-row-end: 3;
  display: grid;
  grid-template-columns: 1% auto 1%;
  grid-template-rows: 50px 50px;
}
.RegistrationForm-container form .inner .emailFormGroup {
  grid-column-start: 2;
  grid-row-start: 1;
  margin: 0 auto;
}
.RegistrationForm-container form .inner .buttonFormGroup {
  grid-column-start: 2;
  grid-row-start: 2;
}
.App {
  text-align: center;
  height: 100%;
}
<div id="root">
  <div class="App">
    <div class="RegistrationForm-container">
      <div class="copy">
        <h1>Register</h1>
        <p>
          By registering, you agree to our
          <a href="/terms">terms of use and privacy policy</a>.
        </p>
      </div>
      <form>
        <div class="inner">
        
          <div class="formGroup emailFormGroup">
            <input
                   class="Input"
                   type="email"
                   placeholder="Email"
                   autocorrect="false"
                   />
          </div>
          <div class="formGroup buttonFormGroup">
            <button type="submit" class="Button primary">
              Submit
            </button>
          </div>
          
        </div>
      </form>
    </div>
  </div>
</div>

私のグリッドレイアウトは中央揃えに成功しますが、ウィンドウのサイズが変更されると誤動作します。ウィンドウのサイズを元のロードサイズより大きくしてから狭くすると、スクロールバーが表示され、入力とボタンが右側に固定されます。

ページのどこかをクリックするか、ボタン、入力、利用規約のリンクの間をタブで移動した後にのみ、それ自体が修正され、垂直/水平の中心に戻ります。

動作のデモンストレーションは次のとおりです。

https://codepen.io/jdoyle/pen/qXadXJ

https://plnkr.co/edit/rzAAAsfgPVUfxxmXlqYa?p=preview

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

ドン

margin:autoグリッド内ではかなり奇妙な動作を開始しているよう見えます。

必要な効果を得る方法ですが、バグを回避するには、

text-align: center;

で、emailFormGroup次にdisplay: block電子メール入力を削除します。

https://codepen.io/anon/pen/YxGyeG

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ウィンドウのサイズ変更時のCSSフッターの動作

分類Dev

マウスでCSSグリッドレイアウトの列を動的にサイズ変更

分類Dev

サイズ変更時のJavaFXレイアウトの動作

分類Dev

サイズ変更時のJavaFXレイアウトの動作

分類Dev

ウィンドウサイズ変更時のJavascriptのデバウンスとスロットリング

分類Dev

pygtkウィンドウのサイズ変更での予期しない動作

分類Dev

動作が異なるthree.jsウィンドウのサイズ変更

分類Dev

CSSグリッドレイアウトを使用して、エディターペインのサイズ変更を実装できますか(CodePenなど)

分類Dev

ウィンドウサイズ変更時のCSSスタイルの変更

分類Dev

グリッド レイアウトで imageView のサイズを変更する

分類Dev

ウェブサイトのサイズ変更グリッドレイアウト

分類Dev

CSSグリッドレイアウトギャップボックスのサイズ変更

分類Dev

ウィンドウのサイズ変更時にReactの更新

分類Dev

CSSウィンドウ幅のサイズ変更の問題

分類Dev

ウィンドウのサイズ変更時にキャンバスのサイズを動的に変更

分類Dev

ウィンドウのサイズ変更時にjQueryscrollspyの最小/最大値をリセットする方法

分類Dev

ウィンドウサイズ変更時の円のサイズの計算

分類Dev

ウィンドウサイズ変更終了時のJavascript

分類Dev

ユニークなFigcaptionがグリッドレイアウトの画像サイズを変更

分類Dev

レイアウトに問題があるようです。ウィンドウのサイズ変更時にJButtonが予期しない動作を示します

分類Dev

ウィンドウサイズ変更の起動機能

分類Dev

kivyのグリッドレイアウトでウィジェットの色を動的に変更したい

分類Dev

さまざまなブラウザウィンドウサイズへの自動レイアウト調整

分類Dev

CSSグリッドレイアウト内の画像のサイズの制御

分類Dev

ページサイズ変更時のウィンドウサイズの更新

分類Dev

ウィンドウのサイズ変更時にAnychartのサイズが変更されない

分類Dev

ブートストラップ列内のリンクは、ウィンドウのサイズ変更時にクリックできなくなります

分類Dev

ウィンドウのドラッグ/サイズ変更時に画面の分割を無効にする

分類Dev

ココアウィンドウのサイズ変更情報

Related 関連記事

  1. 1

    ウィンドウのサイズ変更時のCSSフッターの動作

  2. 2

    マウスでCSSグリッドレイアウトの列を動的にサイズ変更

  3. 3

    サイズ変更時のJavaFXレイアウトの動作

  4. 4

    サイズ変更時のJavaFXレイアウトの動作

  5. 5

    ウィンドウサイズ変更時のJavascriptのデバウンスとスロットリング

  6. 6

    pygtkウィンドウのサイズ変更での予期しない動作

  7. 7

    動作が異なるthree.jsウィンドウのサイズ変更

  8. 8

    CSSグリッドレイアウトを使用して、エディターペインのサイズ変更を実装できますか(CodePenなど)

  9. 9

    ウィンドウサイズ変更時のCSSスタイルの変更

  10. 10

    グリッド レイアウトで imageView のサイズを変更する

  11. 11

    ウェブサイトのサイズ変更グリッドレイアウト

  12. 12

    CSSグリッドレイアウトギャップボックスのサイズ変更

  13. 13

    ウィンドウのサイズ変更時にReactの更新

  14. 14

    CSSウィンドウ幅のサイズ変更の問題

  15. 15

    ウィンドウのサイズ変更時にキャンバスのサイズを動的に変更

  16. 16

    ウィンドウのサイズ変更時にjQueryscrollspyの最小/最大値をリセットする方法

  17. 17

    ウィンドウサイズ変更時の円のサイズの計算

  18. 18

    ウィンドウサイズ変更終了時のJavascript

  19. 19

    ユニークなFigcaptionがグリッドレイアウトの画像サイズを変更

  20. 20

    レイアウトに問題があるようです。ウィンドウのサイズ変更時にJButtonが予期しない動作を示します

  21. 21

    ウィンドウサイズ変更の起動機能

  22. 22

    kivyのグリッドレイアウトでウィジェットの色を動的に変更したい

  23. 23

    さまざまなブラウザウィンドウサイズへの自動レイアウト調整

  24. 24

    CSSグリッドレイアウト内の画像のサイズの制御

  25. 25

    ページサイズ変更時のウィンドウサイズの更新

  26. 26

    ウィンドウのサイズ変更時にAnychartのサイズが変更されない

  27. 27

    ブートストラップ列内のリンクは、ウィンドウのサイズ変更時にクリックできなくなります

  28. 28

    ウィンドウのドラッグ/サイズ変更時に画面の分割を無効にする

  29. 29

    ココアウィンドウのサイズ変更情報

ホットタグ

アーカイブ