2016-11-03 4 views
0

Я ищу способ конвертировать проценты в пиксели без js и использовать только код less/css. Что я имею в виду:нет. конвертировать проценты в пиксели

@val: convertToPx(100%); // here I expect to get 100% converted to px e.g. 350px 

&-blocks { 
    width: calc(@val/5); 
} 

вы можете ввести различные подходы, как решить эту проблему с меньшим/CSS! Благодаря!

+2

Вы не можете определить это через LESS/любой препроцессор CSS, если вы заранее не указали значение статического пикселя, в котором процент. Если это процент того, что может быть динамически изменено клиентом, вам придется использовать JS для вычисления этого динамически. Что касается связанного примечания, почему бы просто не использовать процент напрямую? 'calc()' может справиться с этим. – Serlite

+0

Я думаю, вы запутываете время компиляции и время выполнения. МЕНЬШЕ не может делать * ничего * для вас во время выполнения. – connexo

+0

Глядя на ваш первый комментарий на ответ MrSp33dy123, кажется, что вы просто можете сделать 'width: calc (100%/5)' или, если вам нужно, чтобы вычисление было видимым в css, 'width: calc (~ '100%/5 ') ' – henry

ответ

0

Я думаю, вы можете быть немного смущены. Чтобы «преобразовать» процент в значение, вам нужно иметь исходное значение для умножения процента на. «convertToPx (100%)» - это не то, что вы можете сделать, но, например, «convertToPx (200px, 50%)» - это то, что можно сделать. Вопрос в том, что вы хотите найти 100% от что?

LESS имеет операторов, поэтому вы можете сделать что-то вроде @val = (@percentage/100) * @baseval.

+0

, отвечая на ваш вопрос. Родительский элемент имеет ширину 100% и имеет 5 дочерних элементов, поэтому я хочу установить фиксированную ширину для всех дочерних элементов в зависимости от ширины родительского элемента. Их ширина была рассчитана так: 100% (родительского)/5 (дочерние элементы) = например. 120px (ширина дочерних элементов) – Palatnyi

+0

@Palatnyi Less скомпилирован до того, как сгенерированный CSS привязан к любому HTML, поэтому он просто не может иметь никакого представления о каком-либо «родительском элементе» (ни его ширина, ни его дети не учитываются, ни что-либо этого вообще существует). Итак, как предложено в предыдущих комментариях, вместо этого используйте 'calc'. –

+0

@ seven-phase-max Спасибо! Это тот ответ, который я искал. Меньше ничего не знает о каких-либо родительских или дочерних блоках. – Palatnyi

Смежные вопросы