首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据列数划分百分比

根据列数划分百分比
EN

Stack Overflow用户
提问于 2012-08-16 18:52:19
回答 2查看 596关注 0票数 0

我正在设计一个条形图的样式。有可能有无限的条,我需要每个条都有一个与其父容器成比例的宽度-目前我有类似的东西:

代码语言:javascript
复制
.one-column  {
    width: (100% / 1);
}

.two-columns {
    width: (100% / 2);
}

.three-columns {
    width: (100% / 3);
}

etc

..。我会将其添加到每个条形图中。

有没有人能想出一种巧妙的方法来解决这个问题,并且只有一条规则可以处理无限的列-也许是与数据属性有关的规则?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-16 19:06:30

通过一些巧妙的CSS3选择器组合,您可以找出正在使用的列的数量,并取决于样式和容器的宽度:

代码语言:javascript
复制
div:first-child:last-child {
width: 100%;
}
div:first-child:nth-last-child(2), div:last-child:nth-first-child(2) {
width: 50%;
}
div:first-child:nth-last-child(3), div:first-child:nth-last-child(3) ~ div {
width: 33.33%;
}
div:first-child:nth-last-child(4), div:first-child:nth-last-child(4) ~ div {
width: 25%;
}

正如您所看到的,您仍然需要为每个可能的div数量添加一个规则,但您不需要再检测有多少div并相应地设置类。

但在您的情况下,还有另一种可能的解决方案。您可以以适当的方式在div和父元素上使用display: tabledisplay: table-cell等。然后,如果您将父对象的宽度设置为100%,并将容器的宽度设置为所有相同的值(例如1%),您将获得所需的内容。

票数 0
EN

Stack Overflow用户

发布于 2012-08-16 18:55:39

看看LessCSS --它支持数学运算。否则,我建议您使用Javascript来处理您的栏的样式。也许可以使用像Raphael这样的图形库

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11985608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档