Как изменить высоту изображения заголовка в теме Twenty Seventeen?

6 мар. 2017 г., 12:54:46
Просмотры: 32.6K
Голосов: 11

Как изменить высоту изображения заголовка (указанного в разделе Header Media) в теме Twenty Seventeen?

В частности, я хочу изменить его на главной странице, потому что здесь оно занимает практически всю страницу. Я хочу, чтобы оно было намного короче. Высота, с которой оно отображается на других страницах, например, на встроенной странице "О нас", вполне подходящая, поэтому если бы я мог повторить это на главной странице, я был бы доволен. Хотя знание того, как осуществлять точный контроль над высотой, было бы отлично.

3
Комментарии

Не совсем понятно, почему нет тега theme-twenty-seventeen, когда для предыдущих годов соответствующие теги существуют.

User User
6 мар. 2017 г. 12:55:49

Хороший вопрос, жаль, что пока нет четкого ответа. Хотелось бы, чтобы это был фильтр ‍♀️

jerclarke jerclarke
3 авг. 2017 г. 07:00:53

Связанный вопрос на Stack Overflow

Reinstate Monica - Goodbye SE Reinstate Monica - Goodbye SE
25 сент. 2017 г. 20:19:57
Все ответы на вопрос 8
2

Я нашел (часть) CSS-кода, который контролирует высоту в файле wp-content/themes/twentyseventeen/style.css.

Там есть код, который применяется, когда админ-бар не виден (обычный анонимный пользователь), в настоящее время на строке 3629:

.twentyseventeen-front-page.has-header-image .custom-header-media,
.twentyseventeen-front-page.has-header-video .custom-header-media,
.home.blog.has-header-image .custom-header-media,
.home.blog.has-header-video .custom-header-media {
  height: 1200px;
  height: 100vh;
  max-height: 100%;
  overflow: hidden;
}

И код, который применяется, когда админ-бар виден (например, вы вошли в систему), в настоящее время на строке 3646:

.admin-bar.twentyseventeen-front-page.has-header-image .custom-header-media,
.admin-bar.twentyseventeen-front-page.has-header-video .custom-header-media,
.admin-bar.home.blog.has-header-image .custom-header-media,
.admin-bar.home.blog.has-header-video .custom-header-media {
  height: calc(100vh - 32px);
}

А также код, который применяется на мобильных устройствах, в настоящее время на строке 1638:

.has-header-image.twentyseventeen-front-page .custom-header,
.has-header-video.twentyseventeen-front-page .custom-header,
.has-header-image.home.blog .custom-header,
.has-header-video.home.blog .custom-header {
        display: table;
        height: 300px;
        height: 75vh;
        width: 100%;
}

Скопировав эти три раздела CSS в файл style.css моей дочерней темы и изменив атрибут height, я смог настроить высоту для изображения заголовка на главной странице. Я установил высоту в 30vh, calc(30vh - 32px) и 30vh соответственно в каждом разделе. Первое значение height: 1200px я оставил без изменений.

Обратите внимание, что высота задается в vh, что означает высоту относительно высоты области просмотра. Так, 100vh — это 100% высоты области просмотра, а 50vh — 50% высоты области просмотра.

Одна странность заключается в том, что на главной странице масштаб и позиция изображения заголовка отличаются от других страниц.

Не уверен, что это лучший способ. Я открыт для лучших вариантов, но пока это работает на базовом уровне.

7 мар. 2017 г. 07:02:32
Комментарии

Это действительно выглядит как странный набор CSS. Я не пробовал это (но уверен, что не сработает) - задавать max-height 500px и height 100vh одновременно. То есть, заполнять область просмотра до максимальной высоты в 500px.

Madivad Madivad
6 авг. 2017 г. 20:12:32

Вы также включили @media запросы? Там три разных раздела, чтобы стили могли работать по-разному на мобильных устройствах и экранах компьютеров (третий - для экранов компьютеров с админ-панелью). Я тоже борюсь с этим вопросом и не могу заставить дочернюю тему переопределять медиазапросы родительской темы (даже с !important).

Erik Harris Erik Harris
29 дек. 2017 г. 05:31:10
0

Просто отредактируйте тему из панели управления и добавьте следующее CSS-определение в раздел темы "Пользовательский CSS":

.has-header-image.home.blog .custom-header {
    height: 26vh;
}
27 мар. 2018 г. 12:01:32
0

Из комментария, который я оставил в ответе @User (это классное имя) ;), я подумал, что стоит попробовать.

Я редактирую файл темы напрямую, потому что работаю в одноразовом docker-контейнере — это скорее proof of concept. Для адаптации под дочернюю тему потребуются некоторые изменения.

В файле content/themes/twentyseventeen/style.css, в районе строк 3680~3670, находятся стили для изображения в шапке.

Исходный код:

.twentyseventeen-front-page.has-header-image .custom-header-media,
.twentyseventeen-front-page.has-header-video .custom-header-media,
.home.blog.has-header-image .custom-header-media,
.home.blog.has-header-video .custom-header-media {
  height: 1200px;
  height: 100vh;
  max-height: 100%;
  overflow: hidden;
}

Изменение размера (и порядка свойств) достаточно для достижения вида для неавторизованных пользователей:

  height: 100vh;    
  height: 100%; 
  max-height: 500px;

Я оставил vh и % для случаев, когда max-height не достигается, но установил max-height на нужное вам значение.

Однако есть один нюанс:

Это самый верхний участок пикселей. Поэтому, если у вас нет подходящей части изображения в этой области... Это выглядит не очень (много обрезанных голов).

Продолжение следует (когда разберусь).

6 авг. 2017 г. 20:38:11
0

Взято с этого сайта

Этот дополнительный/пользовательский CSS сработал для меня:

/*Экран компьютера */
@media screen and (min-width: 48em) {
    .twentyseventeen-front-page.has-header-image .custom-header-image {
    /*height: 1200px;*/
    /*height: 100vh;*/
    height: 50vh;
    /*max-height: 100%;*/
    /*overflow: hidden;*/
    }
}

/* Мобильный экран*/
.has-header-image.twentyseventeen-front-page .custom-header {
    /*display: table;*/
    /*height: 300px;*/
    /*height: 75vh;*/
    height: 50vh;
    /*width: 100%;*/
}

/* Экран компьютера с вошедшим пользователем и панелью администратора на фронтенде*/
@media screen and (min-width: 48em) {
    .admin-bar.twentyseventeen-front-page.has-header-image .custom-header-image {
    /*height: calc(100vh - 32px);*/
    height: calc(50vh - 32px);
    }
}

Вы можете установить желаемую высоту в атрибутах 'height'.

22 апр. 2022 г. 10:13:03
1

Вы можете изменить его, обрезав изображение. В WordPress есть опция в настройщике. Вам нужно выполнить следующие шаги для обрезки изображения.

    1) Перейдите Внешний вид->Настроить
    2) Медиа заголовка
    3) Добавьте новое изображение и затем обрежьте его по вашим потребностям, после чего сохраните.
6 мар. 2017 г. 14:08:15
Комментарии

ага..... это не ответ. Я так сделал, и это просто увеличивает часть изображения. Получается очень узкое изображение, но оно заполняет экран

Madivad Madivad
6 авг. 2017 г. 20:11:09
0

Вы можете использовать Firebug (или просмотреть исходный код страницы), чтобы найти CSS, отвечающий за отображение изображения в шапке. Затем добавьте CSS для внесения изменений. Конкретный CSS зависит от используемой темы.

Firebug позволяет временно изменять CSS, чтобы добиться нужного результата, а затем скопировать новый CSS в CSS-файл темы (если такая возможность предусмотрена).

Если в вашей теме нет опции "Пользовательский CSS", лучший способ — создать дочернюю тему (есть множество руководств на эту тему) и добавить ваш пользовательский CSS в файл styles.css дочерней темы. (Никогда не изменяйте родительскую тему — ваши изменения будут перезаписаны при следующем обновлении темы.)

7 мар. 2017 г. 03:39:23
2

Я начал с создания дочерней темы (рекомендуемый шаг для WordPress). Затем в файл style.css дочерней темы я добавил CSS-код ниже. Первая секция управляет высотой изображения на главной странице; вторая секция контролирует высоту пространства для изображения на главной странице. Оба значения должны совпадать для корректной работы. Я закомментировал некоторые строки, которые мешали моему изображению с фиксированной высотой. Теперь шапка на главной странице выглядит точно так же, как и на всех остальных страницах.

.has-header-image .custom-header-media img, 
.has-header-video .custom-header-media video, 
.has-header-image:not(.twentyseventeen-front-page):not(.home) .custom-header-media img {
    /* height: 100%; */
    height: 400px;
    left: 0;
    -o-object-fit: cover;
    object-fit: cover;
    top: 0;
    -ms-transform: none;
    -moz-transform: none;
    -webkit-transform: none;
    transform: none;
    width: 100%;
}
.twentyseventeen-front-page.has-header-image .custom-header-media, 
.twentyseventeen-front-page.has-header-video .custom-header-media, 
.home.blog.has-header-image .custom-header-media, 
.home.blog.has-header-video .custom-header-media {
    height: 400px;
    /* height: 100vh; */
    /* max-height: 100%; */
    overflow: hidden;
}
28 янв. 2020 г. 16:26:05
Комментарии

"Первый раздел управляет высотой изображения; второй раздел управляет высотой пространства для изображения." - только на главной странице, я думаю?

Rup Rup
28 янв. 2020 г. 16:59:28

Rup прав: "только на главной странице," поэтому я отредактировал ответ.

Paris Finley Paris Finley
29 янв. 2020 г. 17:19:04
0

Это решение помогло мне решить проблему, где свойство object-position позволило перемещать изображение влево-вправо и вверх-вниз.

img.wp-image-70 {
  max-height:250px;
    object-position: 0 10%;
    object-fit: cover;
}
25 окт. 2020 г. 03:24:04