【问题标题】:How to display child element ('.cylon') without specifying the height of the parent如何在不指定父元素高度的情况下显示子元素('.cylon')
【发布时间】:2019-02-28 14:26:09
【问题描述】:

有谁知道我如何在不指定父元素高度的情况下显示子元素 (.cylon)(.container)?我希望容器具有流体高度,以便能够完全显示结果元素 (#result)

// DOM elements
const minInput = document.getElementById("minInput");
const maxInput = document.getElementById("maxInput");
const generate = document.getElementById("generate");
const reset = document.getElementById("reset");
const result = document.getElementById("result");

generate.addEventListener("click", function() {
  // Determine the min and max number of the users input
  let min = Math.min(minInput.value, maxInput.value);
  let max = Math.max(minInput.value, maxInput.value);

  // Calculate a random number
  const randomNumber = Math.floor(Math.random() * (max - min + 1) + min);

  // Render random number to DOM
  result.textContent = `Random number: ( ${randomNumber} ) between ${min} and ${max}`;
});

// Reset elements
reset.addEventListener("click", function() {
  minInput.value = "";
  maxInput.value = "";
  result.textContent = "";

  minInput.focus();
});
*,
*:before,
*:after {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

body {
  color: #fff;
  /* height: 100vh; */
  background-color: #191919;
}

.container {
  width: 100%;
  height: 245px;
  height: 100%;
  overflow: hidden;
  border-radius: 5px;
  background-color: #000;
}

.text {
  float: left;
  width: 100%;
  padding: 5px 20px;
}

.generator {
  width: 100%;
  display: grid;
  grid-gap: 1.3em;
  align-items: end;
  grid-template-columns: repeat(2, 1fr);
}

input {
  border: 0;
  height: 25px;
  width: 100%;
  padding-left: 5px;
  border-radius: 5px;
}

button {
  padding: 5px 0;
  color: #fff;
  background-color: transparent;
}

button:hover {
  cursor: pointer;
  background-color: rgb(29, 29, 29);
}

.cylon {
  width: 20%;
  height: 100%;
  background-color: red;
  background-image: -webkit-linear-gradient( left, rgba(0, 0, 0, 0.9) 25%, rgba(0, 0, 0, 0.1) 50%, rgba(0, 0, 0, 0.9) 75%);
  animation: move-eye 4s linear infinite alternate;
}

@keyframes move-eye {
  from {
    margin-left: -20%;
  }
  to {
    margin-left: 100%;
  }
}
<div class="container">
  <div class="text">
    <h1>Random number generator </h1>
    <div class="generator">
      <div class="box">
        <label for="min">Min</label>
        <input type="number" placeholder="Enter the minimum #" id="minInput">
      </div>

      <div class="box">
        <label for="max">Max</label>
        <input type="number" placeholder="Enter the maximum #" id="maxInput">
      </div>

      <button id="generate">Generate</button>
      <button id="reset">Reset</button>
    </div>

    <p id="result"></p>
  </div>

  <div class="cylon"></div>
</div>

【问题讨论】:

    标签: css responsive-design css-float fluid


    【解决方案1】:

    这里有一个快速的解决方案:

    1. 在 .cylon div 中添加一些文本

      <div class="cylon">any text</div>
      
    2. 在您的 CSS 中,将以下样式添加到 .cylon

      color: rgba(0,0,0,0);
      

    希望这会有所帮助。

    【讨论】:

    • 确实有帮助,谢谢!但是 .cylon div 在渲染传递按钮和输入元素后似乎折叠到顶部。我觉得这是由于浮动流量。
    • @Edwards 是的,这是真的。您可以尝试在 CSS 中删除 float: left;.text 以查看是否是您想要的效果。因为我不知道 .cylon 的预期显示位置:P
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-16
    • 1970-01-01
    • 2015-03-09
    • 1970-01-01
    • 2019-01-05
    • 2020-09-04
    • 2019-10-23
    相关资源
    最近更新 更多