Допустим, у меня есть гибкий оберточной контейнер с атрибутом данных-столбцов, как это:CSS динамический класс
<div class="grid" data-columns="2"></div>
и
.grid {
display:flex;
flex-wrap:wrap;
}
.grid[data-columns=2] > * {
width:50%;
}
.grid[data-columns=3] > * {
width:33.3%;
}
.grid[data-columns=4] > * {
width:25%;
}
идея заключается в том, что дети .grid элементов класса имеют ширина 1/grid.data-columns. Теперь я мог бы, конечно, написать кучу из них, но мне интересно, есть ли более динамичный способ сделать это? Может ли css на самом деле выбрать количество столбцов из своего родительского элемента и использовать его в вычислении для определения ширины?
Одно из решений можно использовать CSS препроцессор для создания его для вас. Проверьте http://lesscss.org/#using-less-usage-in-code. Я думаю, это то, что вы ищете в целом. –
У CSS3 была функция 'attr()', которая могла бы работать, но она может получать только значения атрибута выбранного элемента, а не родительский элемент. Ссылка: http://www.w3.org/TR/css3-values/#funcdef-attr. Вы можете сделать это с помощью jQuery/JavaScript –