Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. [gelöst]HTML Tabelle feste Spalten größe

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    513

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    5.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.4k

[gelöst]HTML Tabelle feste Spalten größe

Geplant Angeheftet Gesperrt Verschoben Visualisierung
3 Beiträge 2 Kommentatoren 278 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Chris76eC Online
    Chris76eC Online
    Chris76e
    schrieb am zuletzt editiert von Chris76e
    #1

    Habe mehere HTML Tabellen wo alles gleich eingestellt ist, dennoch werden die Spalten unterschtlich breit dargestellt, wo liegt mein Fehler?

    Beispiel von einer Tabelle

    const STATE_IDS = [
      "statistics.0.temp.minmax.javascript.0.Wetterstation.Wind.dayMax",
      "statistics.0.temp.minmax.javascript.0.Wetterstation.Wind.weekMax",
      "statistics.0.temp.minmax.javascript.0.Wetterstation.Wind.monthMax",
      "statistics.0.temp.minmax.javascript.0.Wetterstation.Wind.quarterMax",
      "statistics.0.temp.minmax.javascript.0.Wetterstation.Wind.yearMax"
    ];
    
    
    const TABLE_ID = "0_userdata.0.Tabellen.TabWindMax";
    
    createTable();
    
    function createTable() {
      let tableData = getTableData();
      let tableHtml = generateTableHtml(tableData);
    
      let style = "width: 1300px; height: 105px;";
    
      setState(TABLE_ID, `<div style="${style}">${tableHtml}</div>`, true);
      //setTimeout(createTable, 5000);
    }
    
    function getTableData() {
      let tableData = [];
    
      for (let i = 0; i < STATE_IDS.length; i++) {
        let state = getState(STATE_IDS[i]);
    
        if (state && state.val != null) {
          let value = state.val;
          let lastChanged = formatDate(state.lc, i === 0);
          let name = STATE_IDS[i].split('.').pop();
    
          tableData.push({
            name: name,
            value: value,
            lastChanged: lastChanged
          });
        }
      }
    
      return tableData;
    }
    
    function generateTableHtml(data) {
      let tableHtml = "<table style='border-collapse: collapse;'>";
    
      const tdStyle = "font-size:22px;color: white;height: 28px;width: 235px;border: 1px solid white;text-align: center;";
    
      // Add new column for "Wind Max"
      tableHtml += `<td style='${tdStyle};width: 260px; border-top: 1px solid white; border-left: 1px solid white; border-bottom: 1px solid white;' rowspan='2'>Windgeschwindigkeit Max</td>`;
    
      data.forEach((item) => {
        tableHtml += `<td style='${tdStyle}'>${item.value} km/h</td>`;
      });
    
      tableHtml += "</tr><tr>";
    
      data.forEach((item) => {
        tableHtml += `<td style='font-size:20px;color: #ffb44d;height: 28px;width: 235px;border: 1px solid white;text-align: center;'>${item.lastChanged}</td>`;
      });
    
      tableHtml += "</tr></table>";
      return tableHtml;
    }
    
    
    
    
    function formatDate(timestamp, showDate) {
      let date = new Date(timestamp);
    
      let hours = date.getHours();
      let minutes = date.getMinutes();
      let timeString = hours.toString().padStart(2, '0') + ":" + minutes.toString().padStart(2, '0')+ " Uhr";
    
      if (showDate) {
        return timeString;
      } else {
        let day = date.getDate();
        let month = date.getMonth() + 1;
        let year = date.getFullYear();
        return day.toString().padStart(2, '0') + "." + month.toString().padStart(2, '0') + "." + year + " " + timeString;
      }
    }
    
    schedule("* * * * *", createTable);
    
    

    Screenshot 2023-02-19 142149.png

    OliverIOO 1 Antwort Letzte Antwort
    0
    • Chris76eC Chris76e

      Habe mehere HTML Tabellen wo alles gleich eingestellt ist, dennoch werden die Spalten unterschtlich breit dargestellt, wo liegt mein Fehler?

      Beispiel von einer Tabelle

      const STATE_IDS = [
        "statistics.0.temp.minmax.javascript.0.Wetterstation.Wind.dayMax",
        "statistics.0.temp.minmax.javascript.0.Wetterstation.Wind.weekMax",
        "statistics.0.temp.minmax.javascript.0.Wetterstation.Wind.monthMax",
        "statistics.0.temp.minmax.javascript.0.Wetterstation.Wind.quarterMax",
        "statistics.0.temp.minmax.javascript.0.Wetterstation.Wind.yearMax"
      ];
      
      
      const TABLE_ID = "0_userdata.0.Tabellen.TabWindMax";
      
      createTable();
      
      function createTable() {
        let tableData = getTableData();
        let tableHtml = generateTableHtml(tableData);
      
        let style = "width: 1300px; height: 105px;";
      
        setState(TABLE_ID, `<div style="${style}">${tableHtml}</div>`, true);
        //setTimeout(createTable, 5000);
      }
      
      function getTableData() {
        let tableData = [];
      
        for (let i = 0; i < STATE_IDS.length; i++) {
          let state = getState(STATE_IDS[i]);
      
          if (state && state.val != null) {
            let value = state.val;
            let lastChanged = formatDate(state.lc, i === 0);
            let name = STATE_IDS[i].split('.').pop();
      
            tableData.push({
              name: name,
              value: value,
              lastChanged: lastChanged
            });
          }
        }
      
        return tableData;
      }
      
      function generateTableHtml(data) {
        let tableHtml = "<table style='border-collapse: collapse;'>";
      
        const tdStyle = "font-size:22px;color: white;height: 28px;width: 235px;border: 1px solid white;text-align: center;";
      
        // Add new column for "Wind Max"
        tableHtml += `<td style='${tdStyle};width: 260px; border-top: 1px solid white; border-left: 1px solid white; border-bottom: 1px solid white;' rowspan='2'>Windgeschwindigkeit Max</td>`;
      
        data.forEach((item) => {
          tableHtml += `<td style='${tdStyle}'>${item.value} km/h</td>`;
        });
      
        tableHtml += "</tr><tr>";
      
        data.forEach((item) => {
          tableHtml += `<td style='font-size:20px;color: #ffb44d;height: 28px;width: 235px;border: 1px solid white;text-align: center;'>${item.lastChanged}</td>`;
        });
      
        tableHtml += "</tr></table>";
        return tableHtml;
      }
      
      
      
      
      function formatDate(timestamp, showDate) {
        let date = new Date(timestamp);
      
        let hours = date.getHours();
        let minutes = date.getMinutes();
        let timeString = hours.toString().padStart(2, '0') + ":" + minutes.toString().padStart(2, '0')+ " Uhr";
      
        if (showDate) {
          return timeString;
        } else {
          let day = date.getDate();
          let month = date.getMonth() + 1;
          let year = date.getFullYear();
          return day.toString().padStart(2, '0') + "." + month.toString().padStart(2, '0') + "." + year + " " + timeString;
        }
      }
      
      schedule("* * * * *", createTable);
      
      

      Screenshot 2023-02-19 142149.png

      OliverIOO Offline
      OliverIOO Offline
      OliverIO
      schrieb am zuletzt editiert von OliverIO
      #2

      @chris76e
      der text in der namensspalte (die erste mit dem namen drin) ist breiter als 260px
      und der browser weiß nicht wie er ohne (weitere) leerzeichen umbrechen soll.
      dann erweitert er von sich aus die Breite der Spalte.

      Mit den Developer Tools des Browsers, die alle schon eingebaut sind, kann man das bequem untersuchen und temporär zum ausprobieren anpassen, bis man die richtigen Einstellungen gefunden hat.

      Noch ein Tip: Wenn du vor der Tabelle noch den style bereich einfügst und
      dann bei den TDs nur noch

      <td class="firstcol">Text</td>
      

      dann machst du dir es mit dem formatieren einfacher und produzierst weniger text.

      <style>
      .firstcol {
         width: 260px; 
         border: 1px solid white;
         font-size:22px;
         color: white;
         height: 28px;
         text-align: center;
      }
      .datacol {
         font-size:22px;
         color: white;
         height: 28px;
         width: 235px;
         border: 1px solid white;
         text-align: center;
      }
      .lastchanged {
         font-size:20px;
         color: #ffb44d;
         height: 28px;
         width: 235px;
         border: 1px solid white;
         text-align: center;
      }
      </style>
      

      Meine Adapter und Widgets
      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
      Links im Profil

      Chris76eC 1 Antwort Letzte Antwort
      0
      • OliverIOO OliverIO

        @chris76e
        der text in der namensspalte (die erste mit dem namen drin) ist breiter als 260px
        und der browser weiß nicht wie er ohne (weitere) leerzeichen umbrechen soll.
        dann erweitert er von sich aus die Breite der Spalte.

        Mit den Developer Tools des Browsers, die alle schon eingebaut sind, kann man das bequem untersuchen und temporär zum ausprobieren anpassen, bis man die richtigen Einstellungen gefunden hat.

        Noch ein Tip: Wenn du vor der Tabelle noch den style bereich einfügst und
        dann bei den TDs nur noch

        <td class="firstcol">Text</td>
        

        dann machst du dir es mit dem formatieren einfacher und produzierst weniger text.

        <style>
        .firstcol {
           width: 260px; 
           border: 1px solid white;
           font-size:22px;
           color: white;
           height: 28px;
           text-align: center;
        }
        .datacol {
           font-size:22px;
           color: white;
           height: 28px;
           width: 235px;
           border: 1px solid white;
           text-align: center;
        }
        .lastchanged {
           font-size:20px;
           color: #ffb44d;
           height: 28px;
           width: 235px;
           border: 1px solid white;
           text-align: center;
        }
        </style>
        
        Chris76eC Online
        Chris76eC Online
        Chris76e
        schrieb am zuletzt editiert von
        #3

        @oliverio Danke, versuche das umzusetzten, Haben aber den eigentlichen Fehler gefunden in der Zeile let style = "width: 1700px; height: 80px;"; war width auf 1300px gestellt.

        Screenshot 2023-02-19 212029.png

        1 Antwort Letzte Antwort
        0
        Antworten
        • In einem neuen Thema antworten
        Anmelden zum Antworten
        • Älteste zuerst
        • Neuste zuerst
        • Meiste Stimmen


        Support us

        ioBroker
        Community Adapters
        Donate

        663

        Online

        32.7k

        Benutzer

        82.5k

        Themen

        1.3m

        Beiträge
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
        ioBroker Community 2014-2025
        logo
        • Anmelden

        • Du hast noch kein Konto? Registrieren

        • Anmelden oder registrieren, um zu suchen
        • Erster Beitrag
          Letzter Beitrag
        0
        • Home
        • Aktuell
        • Tags
        • Ungelesen 0
        • Kategorien
        • Unreplied
        • Beliebt
        • GitHub
        • Docu
        • Hilfe