是否存在与XAML';s*单位?

是否存在与XAML';s*单位?,xaml,css,Xaml,Css,在XAML中,可以以“*”为单位定义大小属性(如长度或宽度),其中*表示剩余空间的一部分 所以,如果我有一个1000像素宽的父元素,它有两个子元素,它们都被定义为1*wide,它们每个都是500像素。如果一个定义为3*,另一个定义为1*,那么一个将是750px,另一个是250px。 如果存在第三个元素,且3的宽度分别定义为“100px”、“2”,则3的宽度将为100px、300px、600px 是否有类似的CSS,或者我应该使用calc()模拟它?尽管CSS中不支持比率,但百分比是。这意味着您不

在XAML中,可以以“*”为单位定义大小属性(如长度或宽度),其中*表示剩余空间的一部分

所以,如果我有一个1000像素宽的父元素,它有两个子元素,它们都被定义为1*wide,它们每个都是500像素。如果一个定义为3*,另一个定义为1*,那么一个将是750px,另一个是250px。 如果存在第三个元素,且3的宽度分别定义为“100px”、“2”,则3的宽度将为100px、300px、600px


是否有类似的CSS,或者我应该使用calc()模拟它?

尽管CSS中不支持比率,但百分比是。这意味着您不能真正指定“宽度的其余部分”,但您通常可以得到您想要的

例如,可以通过指定“宽度:50%”来实现带有1*的1000px的第一个示例。第二个例子是75%和25%

您的第三个示例有点复杂,混合固定px值和百分比值将不起作用。你能做的就是使用一些巧妙的边距来获得整体结果

我已经创建了一个。

使用(无IE)完成此操作

它完全符合您的要求,例如,对于您的场景3:

<div class="box">
  <div>un</div><div>deux</div><div>trois</div>
</div>

.box {
  width: 1000px;
  display: box;
  box-orient: horizontal;
}

.box > div:nth-child(1){ width:100px; }
.box > div:nth-child(2){ box-flex: 1; }
.box > div:nth-child(3){ box-flex: 2; }

未摘除
.盒子{
宽度:1000px;
显示:框;
盒子方向:水平;
}
.box>div:n个子(1){宽度:100px;}
.box>div:n子(2){box-flex:1;}
.box>div:n子(3){box-flex:2;}

从html5rocks示例中

我很感谢您在回答问题时所做的努力,但这正是我试图避免使用的解决方案,因为一旦页面及其内容变得动态,它就会崩溃。@JordaanMylonas您意识到Internet Explorer中还不支持box flex吗?这可能只是一个问题,如果你把你的网页上的网页。