如何仅使用百分比测量来制作正方形

时间:2018-04-14 16:06:37

标签: html css percentage

我用JavaScript编写了一个乒乓球游戏,出于显而易见的原因,我需要把球变成一个正方形。我使用百分比测量,所以游戏适用于所有分辨率,但我想知道如何使用这些球使球成为正方形。

#ball{
  position: absolute;
  height: 1.5%;
  width: 1.5%;
  background-color: white;
  top: 50%;
  left: 50%;
  margin-top: -12.5px;
  margin-left: -12.5px;
}

显然,1.5%的宽度远高于1.5%的高度。有没有人知道如何在不牺牲灵活性的情况下使这两个像素相同?

4 个答案:

答案 0 :(得分:2)

您可以使用视口单元vhvw,其中大小取决于窗口大小,因此它相对于窗口大小而不是父元素大小是灵活的。



.square {
  width: 10vw;
  height: 10vw;
  border: 1px solid black;
  margin: 50px;
}

<div class="square"></div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

而不是height,您可以使用百分比padding-bottom(或padding-top):

&#13;
&#13;
#ball {
  position: absolute;
  width: 3.5%;
  background-color: red;
  top: 50%;
  left: 50%;
  margin-top: -12.5px;
  margin-left: -12.5px;
  padding-bottom: 3.5%;
}
&#13;
<div id="ball"></div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

试试这个

#ball {
    position: absolute;
    height: 1.5%;
    width: 1.5%;
    max-height: 1.5%;
    max-width: 1.5%;
    background-color: #d84343;
    top: 50%;
    left: 50%;
    margin-top: -12.5px;
    margin-left: -12.5px;
    padding: 38px 30px;
}

或使用像素

#ball {
    position: absolute;
    height: 80px;
    width: 80px;
    background-color: #d84343;
    top: 50%;
    left: 50%;
    margin-top: -12.5px;
    margin-left: -12.5px;
}

答案 3 :(得分:0)

我建议使用rem单位,而不是使用百分比,这也是反应灵敏的。

&#13;
&#13;
#ball {
  width: 1.5rem;
  height: 1.5rem;
  border: 1px solid #000;
  background: #f00;
}
&#13;
<div id="ball"></div>
&#13;
&#13;
&#13;