Comment modifier la hauteur de l'image d'en-tête dans Twenty Seventeen?


9

Comment puis-je modifier la hauteur de l'image d'en-tête (spécifiée dans la section Médias d'en-tête) dans le thème Twenty Seventeen?

Plus précisément, je veux le changer sur la page d'accueil car ici, il remplit presque toute la page. Je veux que ce soit beaucoup plus court. La façon dont il apparaît sur d'autres pages, comme la page À propos intégrée, a une bonne hauteur, donc si je pouvais imiter cela sur la page d'accueil, je serais satisfait. Bien que savoir comment effectuer un contrôle précis serait formidable.


Je ne sais pas pourquoi il n'y a pas de theme-twenty-seventeenbalise alors qu'il semble y avoir des balises correspondantes pour les années précédentes.
User

C'est une bonne question, malheureusement il n'y a pas encore de réponse claire. Je souhaite que ce soit un filtre 🤷🏻‍♀️
jerclarke

Réponses:


2

J'ai trouvé (une partie) du code CSS qui contrôle la hauteur wp-content/themes/twentyseventeen/style.css.

Il y a du code qui s'applique lorsque la barre d'administration n'est pas visible (utilisateur anonyme typique) actuellement à la ligne 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;
}

Et le code qui s'applique lorsque la barre d'administration est visible (par exemple, vous êtes connecté) actuellement à la ligne 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);
}

Et puis le code qui s'applique sur mobile actuellement à la ligne 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%;
}

En copiant ces trois sections de CSS dans le style.css de mon thème enfant et en modifiant l' heightattribut, j'ai pu modifier la hauteur de l'image d'en-tête sur la page d'accueil. Je régler la hauteur 30vh, calc(30vh - 32px)et 30vhrespectivement dans chaque section. J'ai laissé le premier height: 1200pxseul.

Notez que l'élément de hauteur est défini à 100vhquelle taille la hauteur par rapport à la hauteur de la fenêtre. 100vh représente donc 100% de la fenêtre d'affichage tandis que 50vh représente 50% de la fenêtre d'affichage.

Une chose étrange est que sur la page d'accueil, le zoom et la position de l'image d'en-tête sont différents de ceux des autres pages.

Je ne sais pas si c'est la meilleure façon. Je suis ouvert à de meilleures options, mais jusqu'à présent, cela fonctionne à un niveau de base.


il semble que ce soit un groupe étrange de CSS. Je ne l'ai pas essayé (mais je suis sûr que cela ne fonctionnera pas) pour avoir la hauteur maximale 500px et la hauteur 100vh. c'est-à-dire, remplissez le port de vue jusqu'à une hauteur maximale de 500 px.
Madivad

Avez-vous également inclus les demandes @media? Il existe trois sections différentes pour qu'il puisse fonctionner différemment sur les appareils mobiles par rapport aux écrans d'ordinateur (la troisième est pour les écrans d'ordinateur avec la barre d'administration). J'ai eu du mal avec cette même question, et je n'arrive pas à faire en sorte que mon thème enfant remplace le thème source Demandes de médias (même avec! Important).
Erik Harris

2

Modifiez simplement le thème à partir du tableau de bord et ajoutez la définition CSS suivante dans la section de thème "css personnalisé":

.has-header-image.home.blog .custom-header {
    height: 26vh;
}

1

D'après un commentaire que j'ai fait dans la réponse de @ User (c'est un nom sympa);) J'ai pensé que j'allais essayer.

Je modifie le fichier de thème directement parce que je travaille dans un conteneur docker jetable, c'est plus une preuve de concept. L'adapter à un thème enfant nécessitera quelques ajustements.

Dans content/themes/twentyseventeen/style.cssla zone entre 3680 ~ 3670ish se trouve l'image d'en-tête.

code d'origine:

.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;
}

La modification de la taille (et de l'ordre) est suffisante pour obtenir la vue déconnectée:

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

J'ai laissé le vhet le %pour couvrir les bases où il max-heightn'est pas atteint, mais max-heightje règle ensuite le sur ce que vous recherchez.

Il y a une mise en garde à tout cela:

C'est la toute première section de pixels. Donc, à moins que vous n'ayez une belle portion d'image dans cette zone ... Ça a l'air merdique (beaucoup de têtes coupées)

plus à suivre (quand je le trie)


0

Vous pouvez le modifier en recadrant l'image. dans WordPress, il existe une option de personnalisation. Vous devez suivre les étapes ci-dessous pour recadrer l'image.

    1) Go appearance->customize
    2) Header media
    3) add a new image and then crop that image as per your needs and you go.

2
ouais ... ce n'est pas la réponse. C'est ce que j'ai fait, et ça zoome juste sur cette partie de l'image. Ce qui en fait une image très étroite mais remplit l'écran
Madivad

0

Vous pouvez utiliser Firebug (ou regarder le code source de la page) pour trouver le CSS utilisé pour afficher l'image d'en-tête. Ajoutez ensuite le CSS pour effectuer le changement. Le CSS exact que vous utilisez dépend du thème.

Firebug vous permet de changer temporairement le CSS pour l'obtenir comme vous le souhaitez, puis copiez ce nouveau CSS dans la page CSS du thème (s'il a cette option).

S'il n'y a pas d'option `` CSS personnalisée '' dans votre thème, la meilleure façon est de créer un thème enfant (beaucoup de tutoriels à ce sujet) et d'ajouter votre CSS personnalisé dans la page styles.css de ce thème enfant. (Ne modifiez jamais le thème parent; vos modifications seront écrasées lors de la prochaine mise à jour du thème.)


0

J'ai abordé cela en créant d'abord un thème enfant (étape recommandée par WP). Puis dans le fichier style.css du thème enfant, j'ai ajouté le css ci-dessous. La première section contrôle la hauteur de l'image sur la première page; la deuxième section contrôle la hauteur de l'espace pour l'image sur la première page. Les deux doivent correspondre pour que cela fonctionne. J'ai commenté certaines lignes qui interféraient avec mon image à hauteur fixe. Maintenant, mon en-tête sur la page d'accueil est exactement le même que sur toutes les autres pages.

.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;
}

"La première section contrôle la hauteur de l'image; la deuxième section contrôle la hauteur de l'espace pour l'image." - seulement en première page je pense?
Rup

Rup est correct: "uniquement sur la première page", j'ai donc modifié la réponse.
pfinley
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.