Tag: tilpasset kode

  • Spotify: Sale Button

    Spotify: Sale Button

    Skaber markup, styling og script der viser et eller flere produkter på websiden. Først skal Sale Button aktiveres som salgskanal. Derefter lægges koden ind i WP som tilpasset HTML. Herunder er et eksempel:

    Sale channel

    Sale channel aktiveres.

    Billedet viser, hvordan du aktiverer Sale Button, som giver den kode, som skal lægges ind på websitet.

    Styling

    Produktet kan med fordel styles med lidt ekstra CSS, der kan tilføjes på flere måder. I et childtheme kan du fx skrive denne CSS direkte ind i style.css. Farver fra theme.json kan anvendes ved hjælp af de variabler, som automatisk skabes - og således bliver det relativt enkelt at anvende sitets overordnede designlinje.

  • Hvordan får jeg den midterste kolonne øverst på mindre skærme?

    Hvordan får jeg den midterste kolonne øverst på mindre skærme?

    Kolonner er responsive i WordPress. På mindre enheder stables de typisk sådan, at kolonnen til venstre ligger øverst. Som regel er det ok. Men ikke altid. Hvordan får man en af de andre kolonner øverst? Denne tutorial viser, hvordan du kan lægge den midterste kolonne øverst.

    Hvis du har brug for at stable på en anden måde, så er det let at modificere denne CSS, så det passer med dine behov.

    Herunder ser du tre kolonner. På mindre skærme vil kolonnerne stakke indholdes sådan, at den venstre kolonne lægger sig øverst.

    Kolonnerne fungerer ved hjælp at flexbox. Det kan du udnytte. Kolonnerne herunder demonstrerer princippet.

    Kolonne 1
    Heks med kat (Co-Pilot feb. 2025)
    Heks med kat (Co-Pilot feb. 2025)

    Prøv at gøre browseren mindre. Den midterste heks lægger sig øverst.

    Kolonne 2 (stables øverst)
    Heks (Co-Pilot, 2025)
    Heks (Co-Pilot, 2025)
    Kolonne 3
    Heks (Co-Pilot, 2025)
    Heks (Co-Pilot, 2025)

    Keine Hexerei.
    CSS!

    A) Giv dine Kolonner en class

    Marker kolonnerne i “Dokumentpanelet”. Under fanebladet Blok / Avanceret kan du tilføje “Ekstra CSS-klasser. Herunder kan du se, hvordan jeg har tilføjet klassen box:

    I venstre side er Dokumentpanelet åbent. Laget Kolonner er markeret. Til højre er panelet indstillinger åbent. Under fanebladet Avanceret er klassen box tilføjet til “Ekstra CSS-klasser”.

    B) Blok: Tilpasset HTML

    Når klassen er tilføjet kan du begynde trylleriet med CSS.

    Blokken “Tilpasset HTML” er indsat oven over kolonnerne med klassen box.

    Tilføj blokken Tilpasset HTML oven over kolonnerne. Her kan du så skrive dine styles i en <style> container.

    I <style> containeren skrives CSS a la det her:

    <style>
    /** Flexbox ændrer rækkefølgen på stakken. Du kan altså den kolonne som skal vises øverst */
    
    @media only screen and (max-width: 800px) {
    
    .box {
      display: flex;
      flex-direction: row;
    }
    .box :nth-child(1) {
      order: 2;
    }
    .box :nth-child(2) {
      order: 1;
    }
    .box :nth-child(3) {
      order: 3;
    }
    	
    }
    
    </style>

    C) Test

    Sandhedens time er inde. Virker vores CSS-hekseri? Prøv at ændre størrelsen på browservinduet – eller brug Inspect Tool.

    Flere muligheder

    Den viste kode vil kun påvirke en enkelt webside. Hvis du ønsker at bruge effekten andre steder, så kan CSS’en tilføjes ved hjælp af fx Simple Custom CSS and JS.

    Gør sådan:

    • Opret et CSS med koden ovenover.
    • Gem det.
    • Opret Kolonner med tre kolonner – og giv blokken classen box.

    Nu kan du bruge effekten overalt på sitet.

  • Karrusel med “Tilpasset HTML” blokken

    Karrusel med “Tilpasset HTML” blokken

    Sådan kunne løsningen se ud, når du implementerer en karrusel fra W3 Schools i en “Tilpasset HTML” blok.

    1 / 3
    Caption Text
    2 / 3
    Caption Two
    3 / 3
    Caption Three

    CSS, HTML & JavaScript

    Herunder ser du indholdet i blokken "Tilpasset HTML":

    <style>
        * {box-sizing: border-box}
        body {font-family: Verdana, sans-serif; margin:0}
        .mySlides {display: none}
        img {vertical-align: middle;}
        
        /* Slideshow container */
        .slideshow-container {
          max-width: 1000px;
          position: relative;
          margin: auto;
        }
        
        /* Next & previous buttons */
        .prev, .next {
          cursor: pointer;
          position: absolute;
          top: 50%;
          width: auto;
          padding: 16px;
          margin-top: -22px;
          color: white;
          font-weight: bold;
          font-size: 18px;
          transition: 0.6s ease;
          border-radius: 0 3px 3px 0;
          user-select: none;
        }
        
        /* Position the "next button" to the right */
        .next {
          right: 0;
          border-radius: 3px 0 0 3px;
        }
        
        /* On hover, add a black background color with a little bit see-through */
        .prev:hover, .next:hover {
          background-color: rgba(0,0,0,0.8);
        }
        
        /* Caption text */
        .text {
          color: #f2f2f2;
          font-size: 15px;
          padding: 8px 12px;
          position: absolute;
          bottom: 8px;
          width: 100%;
          text-align: center;
        }
        
        /* Number text (1/3 etc) */
        .numbertext {
          color: #f2f2f2;
          font-size: 12px;
          padding: 8px 12px;
          position: absolute;
          top: 0;
        }
        
        /* The dots/bullets/indicators */
        .dot {
          cursor: pointer;
          height: 15px;
          width: 15px;
          margin: 0 2px;
          background-color: #bbb;
          border-radius: 50%;
          display: inline-block;
          transition: background-color 0.6s ease;
        }
        
        .active, .dot:hover {
          background-color: #717171;
        }
        
        /* Fading animation */
        .fade {
          animation-name: fade;
          animation-duration: 1.5s;
        }
        
        @keyframes fade {
          from {opacity: .4} 
          to {opacity: 1}
        }
        
        /* On smaller screens, decrease text size */
        @media only screen and (max-width: 300px) {
          .prev, .next,.text {font-size: 11px}
        }
        </style>
      <div>
        <div class="slideshow-container">
        
        <div class="mySlides fade">
          <div class="numbertext">1 / 3</div>
          <img src="https://thoth.dk/wp-content/uploads/2024/01/witch-edited.jpeg" style="width:100%">
          <div class="text">Caption Text</div>
        </div>
        
        <div class="mySlides fade">
          <div class="numbertext">2 / 3</div>
          <img src="https://thoth.dk/wp-content/uploads/2024/01/superwoman-coder-edited.jpeg" style="width:100%">
          <div class="text">Caption Two</div>
        </div>
        
        <div class="mySlides fade">
          <div class="numbertext">3 / 3</div>
          <img src="https://thoth.dk/wp-content/uploads/2024/01/hugin-munin.jpeg" style="width:100%">
          <div class="text">Caption Three</div>
        </div>
        
        <a class="prev" onclick="plusSlides(-1)">❮</a>
        <a class="next" onclick="plusSlides(1)">❯</a>
        
        </div>
        <br>
        
        <div style="text-align:center">
          <span class="dot" onclick="currentSlide(1)"></span> 
          <span class="dot" onclick="currentSlide(2)"></span> 
          <span class="dot" onclick="currentSlide(3)"></span> 
        </div>
    </div>
        
        <script>
        let slideIndex = 1;
        showSlides(slideIndex);
        
        function plusSlides(n) {
          showSlides(slideIndex += n);
        }
        
        function currentSlide(n) {
          showSlides(slideIndex = n);
        }
        
        function showSlides(n) {
          let i;
          let slides = document.getElementsByClassName("mySlides");
          let dots = document.getElementsByClassName("dot");
          if (n > slides.length) {slideIndex = 1}    
          if (n < 1) {slideIndex = slides.length}
          for (i = 0; i < slides.length; i++) {
            slides[i].style.display = "none";  
          }
          for (i = 0; i < dots.length; i++) {
            dots[i].className = dots[i].className.replace(" active", "");
          }
          slides[slideIndex-1].style.display = "block";  
          dots[slideIndex-1].className += " active";
        }
        </script>

    Kilde: https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_slideshow

  • Nyt kort

    Nyt kort

    Dette landkort fra OpenStreetMap er lagt ind som en iframe i en Tilpasset HTML blok:

    <p><iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d4459.180735328034!2d10.2569901502232!3d56.02576627212852!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x464c440d68cb9a59%3A0x8a40bf88ec8d461c!2s8340%20Norsminde!5e0!3m2!1sda!2sdk!4v1675681184386!5m2!1sda!2sdk" width="600" height="450" style="border:0;" allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe></p>

    Læg mærke til detaljen, hvor <iframe> ligger inde i en <p> container. Dette sker for at få <iframe> til at opføre sig som de øvrige layoutelementer.