- From: Rami Yushuvaev via GitHub <sysbot+gh@w3.org>
- Date: Wed, 04 Nov 2020 22:54:41 +0000
- To: public-css-archive@w3.org
> Is there any chance you could elaborate of what particular styling changes you'd apply based on the number of child elements? The thing I can think of is stuff like changing the width of the parent based on number or such, but that seems brittle / repetitive and better suited by stuff like flex / grid / tables / inline-block etc...
@emilio I have several use cases but I will elaborate on my particular one I'm currently working on. I'm trying to create CSS framework turning HTML data `<table>` into a chart using pure CSS without any JS (for more details checkout [ChartsCSS.org](https://chartscss.org/charts/column/)).
It is very hard to create a [radar chart](https://en.wikipedia.org/wiki/Radar_chart) with pure CSS in addition don't know how many `<tr>` elements the developer will provide. To simplify the explanation think of `clip-path` with the help of [clippy](https://bennettfeely.com/clippy/):

```css
/* Triangle */
tbody:nth-children(3) {
clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
}
/* Rhumbus */
tbody:nth-children(4) {
clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
}
/* Pentagon */
tbody:nth-children(5) {
clip-path: polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 38%);
}
/* Hexagon */
tbody:nth-children(6) {
clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);
}
/* Heptagon */
tbody:nth-children(7) {
clip-path: polygon(50% 0%, 90% 20%, 100% 60%, 75% 100%, 25% 100%, 0% 60%, 10% 20%);
}
/* Octagon */
tbody:nth-children(8) {
clip-path: polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);
}
/* Nonagon */
tbody:nth-children(9) {
clip-path: polygon(50% 0%, 83% 12%, 100% 43%, 94% 78%, 68% 100%, 32% 100%, 6% 78%, 0% 43%, 17% 12%);
}
/* Decagon */
tbody:nth-children(10) {
clip-path: polygon(50% 0%, 80% 10%, 100% 35%, 100% 70%, 80% 90%, 50% 100%, 20% 90%, 0% 70%, 0% 35%, 20% 10%);
}
```
This is not the final solution that I will use in the framework but it demonstrates the use-case of conditional design based on the total number of child elements. To do the same with alternative methods require much more code with different thinking.
--
GitHub Notification of comment by ramiy
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/5694#issuecomment-722018540 using your GitHub account
--
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Wednesday, 4 November 2020 22:54:43 UTC