#css #wordpress
#css #wordpress
Вопрос:
Я пытаюсь переопределить изображение логотипа на сайте WordPress, но вижу, что свойство content
CSS работает в Chrome, но не в Firefox.
Я также пытался использовать :before
и :after
, но, вероятно, я что-то упускаю.
Это страница: https://www.exploringart.co/contact-page /
И это CSS, который я использую:
body.elementor-page-4930 #site-logo #site-logo-inner a img {
content:url("....logo_white.png");
}
Комментарии:
1. Каков полный путь
logo_white.png
? В вашем фрагменте кода....
указан неправильный путь, поэтому мы не можем вам помочь. Я вижу на вашем живом сайте путь ‘ exploringart.co/wp-content/uploads/2020/12/logo_white.png ‘что приводит к странице с ошибкой 404.2. Содержимое CSS не будет использовать URL-адрес (недавно я столкнулся с этой проблемой, пытаясь что-то сделать в одном из моих собственных проектов). Содержимое также не будет работать с
img
тегом. Если вы хотите использовать CSS для отображения изображения, вы захотите использоватьbackground
илиbackground-image
, но тогда вы столкнетесь с проблемами с обрезкой изображения, для чего все равно потребуется JS для извлечения исходного размера изображения, создания соотношения сторон и установки контейнера сbackground
определенным соотношением сторон. В каком случае логотип должен быть динамичным таким образом с помощью CSS?3. URL содержимого не работает в Firefox, используйте фоновый CSS или Javascript для изменения SRC
Ответ №1:
Вам необходимо использовать JavaScript, чтобы изменить src
атрибут вашего изображения :
document.getElementById('your-image-id').src = 'path-to-your-image/logo_white.png';
или с помощью jQuery :
$(".page-id-4930 .custom-logo-link img").attr("src","path-to-your-image/logo_white.png");
Чтобы настроить таргетинг на вашу страницу контактов :
Обратите .page-id-4930
внимание: оно нацелено на вашу страницу контактов, это идентификатор вашей страницы WordPress.
Другим подходом может быть php :
- Измените шаблон, удалите
img
и вставьте свой логотип с помощью cssbackground-image
. Затем в css легко настроить таргетинг на вашу страницу и изменить фоновое изображение. - Вы могли бы сделать оператор if :
если это идентификатор страницы = 4930, покажите это изображение, иначе покажите обычное изображение.
if (page_id = 4930) {
// show image_contact
} else {
// show image_normal
}
Комментарии:
1. Хорошо, но если мне нужно сделать это только на определенной странице, лучше ли это делать с помощью css или js?
2. CSS — это не то, как вы хотели бы использовать этот вариант использования. Вы можете использовать add JS, который будет использовать
window.location
, а затем, возможно, использовать РЕГУЛЯРНОЕ ВЫРАЖЕНИЕ, чтобы проверить, находится ли пользователь на одной из определенных страниц, затем установите обновленное изображение так, как показал здесь Себастьян.3. Я не очень хорошо разбираюсь в JS, но каков правильный тип EventListener?
4. @user14649759 конечно: вы можете легко настроить таргетинг на определенную страницу (вашу страницу контактов) с помощью jQuery. Я обновил свой ответ.
5. Я должен сделать это в JS, у меня нет jquery