Utilisateur:Hymass/Styliser les infobox de commune de France

Une page de Wikipédia, l'encyclopédie libre.
Ceci est la version actuelle de cette page, en date du 24 avril 2024 à 11:31 et modifiée en dernier par Hymass (discuter | contributions). L'URL présente est un lien permanent vers cette version.
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

Résultat attendu

Petite manipulation pour avoir une infobox sur les communes de France un peu différente. Je me suis amusé à faire ça lorsque j'ai remarqué que les infobox des rues de Paris avaient un entête original (exemple). J'ai donc repris le style des panneaux communaux.

Le script ne marche que si vous utiliser le site, il ne marche pas avec l'application mobile. Il marche avec tout les habillage proposés dans la section "apparence" des préférences. Si j'ai bien fait mon travail, il devrait marcher sur toutes les pages utilisant une infobox Commune de France

Pour pouvoir en profiter, ajouter cette ligne à votre common.js.

importScript("Utilisateur:Hymass/styleInfoboxCommuneDeFrance.js");

Code[modifier | modifier le code]

Lien vers le fichier js

var isCommuneDeFrance = false;

// Vérifier si la page contient un lien avec le texte "Consultez la documentation du modèle" et renvoyant vers l'infobox des communes de France
var docLink = document.querySelector("a[href='/wiki/Mod%C3%A8le:Infobox_Commune_de_France'][title='Consultez la documentation du modèle']");
if (docLink) {
    isCommuneDeFrance = true;
}

// Si c'est le cas, modifier le style de toutes les divs ayant la classe "entete" et ajouter une div de contour rouge
if (isCommuneDeFrance) {
    var headers = document.querySelectorAll(".entete");
    headers.forEach(function(header) {
        // Appliquer les styles à la div "entete"
        header.style.backgroundImage = "none";
        header.style.backgroundColor = "white";
        header.style.border = "1px solid grey";
        header.style.borderRadius = "7.5px";
        header.style.position = "relative";
        header.style.textTransform = "uppercase";
        header.style.letterSpacing = ".2em";
        header.style.padding = ".5em";

        // Créer et ajouter la div de contour rouge
        var redBorder = document.createElement("div");
        redBorder.style.display = "block";
        redBorder.style.position = "absolute";
        redBorder.style.top = "2px";
        redBorder.style.left = "2px";
        redBorder.style.width = "calc(100% - 14px)";
        redBorder.style.height = "calc(100% - 14px)";
        redBorder.style.border = "5px solid red";
        redBorder.style.borderRadius = "5px";
        header.appendChild(redBorder);
    });
}