@HellWalk

Как работать с картинкой вида img src="/crops/a7303253abf"?

Постараюсь объяснить проблему коротко и понятно.

Необходимо поправить верстку, по-сути, простой div с картинкой внутри. Для того, чтобы сделать что нужно, нужно картинку убрать, и сделать её в виде background-image у div-а. В целом ничего сложного, если бы не одно но:

Картинка вставляется через:
<img src="<?= ImgHelper::cropImg($new['image'], 800, 400) ?>" alt="" />


В html коде выглядит так:
<img src="/crops/a7305823253abf7706a" alt="" />

И отображается нормально. Но если пробую сделать стиль у блока
background: url('/crops/a7305823253abf7706a');

Картинка не отображается.

Вопрос - как быть? Вариант поправить бек-энд и получать прямые ссылки на картинки вида site.ru/images/img.jpg - не подходит, так как картинки берутся с другого сайта (и ImgHelper::cropImg в этом плане помогает избежать тысяч внешних ссылок).
  • Вопрос задан
  • 167 просмотров
Решения вопроса 1
Prolfiic
@Prolfiic
Интересуюсь WEB технологиями.
Я бы не советовал пихать картинки в style.css, лучше разграничивать дизайн и данные. Лучше пропиши у дива в html такой атрибут:
<div style="background-image:url(<?= ImgHelper::cropImg($new['image'], 800, 400) ?>)">...</div>

Надеюсь код без ошибок, суть понятна.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега CSS
{PHP, MySql, HTML, JS, CSS} developer
И отображается нормально. Но если пробую сделать стиль у блока
background: url('/crops/a7305823253abf7706a');

надеюсь вы понимаете, что css файлы не исполняют код пхп, если вы туда что-либо и пропишете. Данный ключ /crops/a7305823253abf7706a читает временную картинку заданного в параметрах скрипта размера, его создает скрипт, просто прописав его вы не получите результат выполнения скрипта и данный путь будет пустым. Выхода 2, оба не идеальны, но в вашем случае есть необходимость в костылях, я так понимаю используется как фон картинка из большого массива данных (типа аватарок или чего-то подобного).
- Первый вариант - подключать css через методы пхп(инклуд, реквайр или как кусок шаблона), тогда вставленный код будет работать как надо, причем весь цсс так подключать не нужно, только кусок где у вас такие хитропопые бэкграунды используются.
- Второй вариант - как написал Максим Шимко - в нужных местах шаблона заменить на инлайн стили с прописанным бэкграундом скриптом.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы