Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可以使用CSS calc()函数使元素的高度与其宽度匹配吗?我的尝试无效_Css_Height_Calc - Fatal编程技术网

可以使用CSS calc()函数使元素的高度与其宽度匹配吗?我的尝试无效

可以使用CSS calc()函数使元素的高度与其宽度匹配吗?我的尝试无效,css,height,calc,Css,Height,Calc,calc()函数没有像我在代码中预期的那样工作 高度不是计算为容器宽度的20%,而是正在塌陷 html: .box{ 宽度:20%; 身高:钙(20%); 保证金:自动; 背景颜色:橄榄色; } 尝试使用查看端口宽度 视口是设备上html页面的可见部分 您可以看到的页面大小为100vw*100vh,其中vw和vh是视口大小单位 .box { width: 20vw; height: calc(20vw * 0.02); margin: auto;

calc()函数没有像我在代码中预期的那样工作

高度不是计算为容器宽度的20%,而是正在塌陷

html:

.box{
宽度:20%;
身高:钙(20%);
保证金:自动;
背景颜色:橄榄色;
}

尝试使用查看端口宽度

视口是设备上html页面的可见部分

您可以看到的页面大小为100vw*100vh,其中vw和vh是视口大小单位

.box {
      width: 20vw;
      height: calc(20vw * 0.02);
      margin: auto;
      background-color: blue;
     }

尝试使用“查看端口宽度”

视口是设备上html页面的可见部分

您可以看到的页面大小为100vw*100vh,其中vw和vh是视口大小单位

.box {
      width: 20vw;
      height: calc(20vw * 0.02);
      margin: auto;
      background-color: blue;
     }

正如我在上面所评论的那样,高度百分比是相对于父元素的高度的,使用
calc()
不会改变行为,因为
calc(20%)
与简单的
20%
相同

此函数只需进行一些计算,以提供属性使用的结果,这样无论是否使用
calc()
,逻辑都将保持相同

您需要设置父容器的高度,以便使元素具有以下高度:

.container{
高度:100px;
}
.盒子{
宽度:20%;
身高:钙(20%);
/*与下面的结果相同
高度:计算(20%/1);
高度:计算(20%-0px);
*/
保证金:自动;
背景颜色:橄榄色;
}
.框-1{
宽度:20%;
身高:20%;
/*相同的结果,无需计算*/
保证金:自动;
背景色:红色;
}
.方框-2{
宽度:20%;
高度:计算((50%+20px)/2);
/*50%自母体高度=50px
50px+20px=70px
70px/2=35px*/
保证金:自动;
背景颜色:黄色;
}

您将看到此元素,因为“高度”设置为“容器”
您将看不到这些元素,因为没有将高度设置为父容器(主体)

正如我在上面所评论的那样,高度百分比是相对于父元素的高度的,使用
calc()
不会改变行为,因为
calc(20%)
与简单的
20%
相同

此函数只需进行一些计算,以提供属性使用的结果,这样无论是否使用
calc()
,逻辑都将保持相同

您需要设置父容器的高度,以便使元素具有以下高度:

.container{
高度:100px;
}
.盒子{
宽度:20%;
身高:钙(20%);
/*与下面的结果相同
高度:计算(20%/1);
高度:计算(20%-0px);
*/
保证金:自动;
背景颜色:橄榄色;
}
.框-1{
宽度:20%;
身高:20%;
/*相同的结果,无需计算*/
保证金:自动;
背景色:红色;
}
.方框-2{
宽度:20%;
高度:计算((50%+20px)/2);
/*50%自母体高度=50px
50px+20px=70px
70px/2=35px*/
保证金:自动;
背景颜色:黄色;
}

您将看到此元素,因为“高度”设置为“容器”
您将看不到这些元素,因为没有将高度设置为父容器(主体)
只要把

height:0; padding-top:100%; 
填充根据元素的宽度进行计算。

只需放置

height:0; padding-top:100%; 

填充根据元素的宽度进行计算。

%的高度是基于父级高度计算的@Temani af的可能重复项如果%的高度是基于父级高度,那么为什么div的高度仍然塌陷为零?谢谢你给我指出另一个帖子,但是我在那里找不到我问题的答案。我正在试图弄清楚为什么calc()不起作用。原因很简单,因为没有设置父级高度,因此%没有效果。。本例中的父对象是主体,指定主体的高度,您将看到;)而calc与此无关。。。calc(20%)与20%%的高度完全相同,20%%的高度是基于父级高度计算的@Temani af的可能重复项如果%的高度是基于父级高度计算的,那么为什么div的高度仍然塌陷为零?谢谢你给我指出另一个帖子,但是我在那里找不到我问题的答案。我正在试图弄清楚为什么calc()不起作用。原因很简单,因为没有设置父级高度,因此%没有效果。。本例中的父对象是主体,指定主体的高度,您将看到;)而calc与此无关。。。calc(20%)与20%hi@ben_fluleck完全相同。谢谢你的解决方案!但是,我希望应用此解决方案,即使包含的元素不是视口。例如:如果包含div的宽度为100px。我设置.box{width:calc(20%)}在这种情况下,如何使calc(20%)的计算值为20px?如果我依赖于视口宽度,那么这段代码可以工作,但我希望它可以基于任何包含元素的宽度工作。谢谢框{宽度:20vw;高度:calc(100vw*0.2);边距:自动;背景色:蓝色;}hi@ben_-fluleck。谢谢你的解决方案!但是,我希望应用此解决方案,即使包含的元素不是视口。例如:如果包含div的宽度为100px。我设置.box{width:calc(20%)}在这种情况下,如何使calc(20%)的计算值为20px?如果我依赖于视口宽度,那么这段代码可以工作,但我希望它可以基于任何包含元素的宽度工作。谢谢框{width:20vw;height:calc(100vw*0.2);margin:auto;background color:blue;}好的,看来您是说无法捕获div的宽度并将其作为参数传递到其自身的高度。如height:calc([thisDiv'sWidth])@Maiya with pure CSS no:)但您总是可以找到一些解决方法,就像我对variable所做的那样,或者您将在我的sharedOkay链接中找到的那样,因此您似乎在说没有