欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

在柔性柱中放置一個響應方塊

榮姿康2年前8瀏覽0評論

我有一個游戲網站,里面有頁眉、棋盤和頁腳。我需要把這三個都放在視窗里。棋盤應該縮小才能實現這一點。

縮水是我有問題的地方。我已經能夠得到寬度響應,但不是限制性的高度。

棋盤應保持正方形,并占據未使用的空間或縮小以防止溢出。

我按照下面的思路做了一些事情,但是棋盤最終超出了父級的高度。

.parent {
  height: 100vh;
  background-color: grey;
  display: flex;
  flex-direction: column;
}

.header {
  height: 10px;
  background-color: blue;
}

.child {
  background-color: red;
  flex: 1 1 auto;
}

.chessboard {
  width: 100%;
  max-height: 100%;
  aspect-ratio: 1/1;
  background-color: purple;
  margin: auto;
}

.footer {
  height: 10px;
  background-color: green;
}

<div class="parent">
  <div class="header">
  </div>
  <div class="child">
    <div class="chessboard">
    </div>
  </div>
  <div class="footer">
  </div>
</div>

# # #最終答案取決于你的一些澄清。我在問題的評論里問過你。但我會給出一個普適的答案。

我將在下面的例子中簡單解釋一下是怎么做的。 我創建了一個.棋盤包裝器,它有一個& lt畫布& gt在里面。& lt畫布& gt根據您的需要進行縮放,長寬比為1;。 的。棋盤本身就有位置:絕對;并將采用父的維度。

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.parent {
  height: 100vh;
  background-color: grey;
  display: flex;
  flex-direction: column;
}

.header {
  height: 10px;
  background-color: blue;
  flex: none;
}

.child {
  background-color: red;
  flex: auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.chessboard-wrapper {
  position: relative;
  min-height: 0;
  margin: auto;
  aspect-ratio: 1;
}

.chessboard-wrapper > canvas {
  max-width: 100%;
  max-height: 100%;
}

.chessboard {
  position: absolute;
  inset: 0;
  background-color: purple;
}

.footer {
  height: 10px;
  background-color: green;
  flex: none;
}

<div class="parent">
  <div class="header"></div>
  <div class="child">
    <div class="chessboard-wrapper">
      <canvas width="1000000" height="1000000"></canvas>
      <div class="chessboard"></div>
    </div>
  </div>
  <div class="footer"></div>
</div>

# # #你的長寬比表示棋盤的高度和寬度相同,所以如果你的寬度是3000像素,那么你的高度也是相同的。你有選擇

移除縱橫比 在我的例子中,移除子包裝元素 設置棋盤的最大高度

*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.parent {
  height: 100vh;
  background-color: grey;
  display: flex;
  flex-direction: column;
}

.header {
  flex-shrink: 0;
  height: 10px;
  background-color: blue;
}

.child {
  flex-grow: 1;
  background-color: lightcoral;
}

.chessboard {
  height: 100%;
  max-height: 100%;
  background-color: purple;
  margin: auto;
}

.footer {
  flex-shrink: 0;
  height: 10px;
  background-color: green;
}

<div class="parent">
  <header class="header">
  </header>

  <div class="child">
    <div class="chessboard">
      main
    </div>
  </div>

  <footer class="footer">
  </footer>
</div>

# # #我會用一個格子把板子放在中間。 我給了& quot孩子& quot不同的顏色只是為了顯示它在那里。注意板子是如何留在里面的,但是標記迫使我們也給它增加一個長寬比。

編輯:讓填充物在這里舉重若輕。這個想法很大程度上歸功于:https://css-tricks.com/aspect-ratios-grid-items/# aa-scenario-1-just-the-element in-need-to-have a-aspect ratio

body {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-size: 16px;
}

.parent {
  background-color: grey;
}

.grid {
  display: grid;
  grid-template-columns: 5% 1fr 5%;
  /* calc middle row based on other two */
  grid-template-rows: 0.625em calc(100vh - 1.35em) 0.625em;
}

.grid>* {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  place-items: start;
}

.grid>[style^='--aspect-ratio']::before {
  content: "";
  display: inline-block;
  width: 1px;
  height: 0;
  padding-bottom: calc(100% / (var(--aspect-ratio)));
}

.header,
.footer {
  grid-column: span 3;
}

.header {
  grid-row: 1;
  background-color: #0000FF;
}

.footer {
  grid-row: 3;
  background-color: #008000;
}

.child {
  grid-column: 2;
  grid-row: 2;
  background-color: #E6E6FA;
  display: grid;
  place-items: center;
  /* just to show the board stays inside it */
  padding-top: 0.25em;
}

.chessboard {
  aspect-ratio: 1 / 1;
  background-color: #800080;
  height: 100%
}

<div class="parent grid">
  <div class="header"></div>
  <div class="child" style="--aspect-ratio: 1/1;">
    <div class="chessboard"></div>
  </div>
  <div class="footer"></div>
</div>