Подтвердить что ты не робот

Конкатенация строк в css

Я хочу сделать следующее в css. Как сделать это так, как в IE8 +

url('../img/icons/' + attr('type') + '_10.png')
4b9b3361

Ответ 1

Вы не можете делать динамическую интерполяцию строк так, как вы предлагаете, но если у вас есть ограниченное количество возможных значений для атрибута [type], вы можете создавать стили для каждого из них:

.your .selector[type="foo"] {
    background-image: url('../img/icons/foo_10.png');
}
.your .selector[type="bar"] {
    background-image: url('../img/icons/bar_10.png');
}
.your .selector[type="baz"] {
    background-image: url('../img/icons/baz_10.png');
}

Если у вас есть необоснованное количество типов, то вам, вероятно, придется придумать лучшее решение, чем я здесь.

Ответ 2

Я не думаю, что ты можешь. В свойстве content вы можете "конкатенировать", просто разделяя пространство, но в других местах я не думаю, что есть такая функция. Какой позор.

Вероятно, вам лучше всего указать этот стиль в атрибуте style всякий раз, когда используется атрибут type.

Ответ 3

Нет, вы не можете сделать это в простом CSS, потому что язык CSS не имеет управляющих структур или чего-то подобного, что позволит вам динамически генерировать CSS-код.

Вместо этого вы можете использовать javascript-решения или решение на основе переменных CSS, закодированных в PHP.

Ответ 4

просто используйте это:

url('../img/icons/' attr('type') '_10.png')