CSS attr() конкатенация с URL-путем

Как я могу объединить CSS attr() со статическим текстом в поле url()?

HTML-код, который я использую:

<div image='/Require/static.png'></div> //Example 2
<div image='static.png'></div> //Example 3, 4, 5

Например:

//image attribute contains the image name (and prefix location when needed, see example 2)
div[image]:before {
    background-image: url('/Image/static.png'); //Works
    background-image: url(attr(image)); // Works
    background-image: url('/Image/' attr(image)); //Fails
    background-image: url('/Image/' #attr(image)); //Fails
    background-image: url('/Image/' {attr(image)); //Fails
    }

Итак, если это возможно, как я могу достичь этого?

1 ответ

Решение

Невозможно создать композит url() значение из двух или более строк. На вершине наследия url() значение, которое даже не является правильной функцией CSS (см. Есть ли способ интерполировать переменные CSS с помощью url()? - что означает, что вы даже не можете сделать это с пользовательскими свойствами), правильная версия функции CSS url() как определено в css-values-3, принимает только одну строку. 1

Вы можете объединить несколько строк в content декларация, но это особенность content свойство, а не строк в CSS.


1 С url() принимает одну строку, это означает, что один attr() может использоваться как значение URL, также новое для css-values-3, так как attr(image url) ... кроме поддержки браузера не существует.

Другие вопросы по тегам