Widget:GOV-Test: Unterschied zwischen den Versionen
Aus Altes Köln
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 26: | Zeile 26: | ||
all: initial; /* Verhindert globale Stile */ | all: initial; /* Verhindert globale Stile */ | ||
display: block; | display: block; | ||
max-width: | max-width: 1000px; /* Erweitere die Breite */ | ||
margin: 20px auto; | margin: 20px auto; | ||
padding: | padding: 15px; | ||
border: 1px solid #ccc; | border: 1px solid #ccc; | ||
background-color: #f9f9f9; | background-color: #f9f9f9; | ||
overflow: auto; | overflow: auto; | ||
font-family: Arial, sans-serif; /* Setze Schriftart auf Arial */ | |||
} | } | ||
table { | table { | ||
width: 100%; | width: 100%; | ||
table-layout: fixed; /* Verhindert Überdehnung | table-layout: fixed; /* Verhindert Überdehnung */ | ||
border-collapse: collapse; | border-collapse: collapse; /* Entfernt doppelte Rahmenlinien */ | ||
margin: 10px 0; | margin: 10px 0; | ||
} | } | ||
th, td { | th, td { | ||
border: 1px solid #ddd; | border: 1px solid #ddd; /* Einfache Rahmenlinie */ | ||
padding: | padding: 10px; | ||
text-align: left; | text-align: left; | ||
word-wrap: break-word; /* Zeilenumbruch für lange Wörter */ | word-wrap: break-word; /* Zeilenumbruch für lange Wörter */ | ||
font-family: Arial, sans-serif; /* Schriftart innerhalb der Tabelle */ | |||
} | } | ||
| Zeile 54: | Zeile 56: | ||
ul { | ul { | ||
padding-left: 20px; | padding-left: 20px; | ||
margin: 10px 0; | |||
} | } | ||
object { | object { | ||
max-width: 100%; | max-width: 100%; /* Skaliere Karten auf Containerbreite */ | ||
height: auto; | height: auto; | ||
display: block; | display: block; | ||
| Zeile 88: | Zeile 91: | ||
})(); | })(); | ||
</script> | </script> | ||
<h1>Variante: Einfacher iframe mit <!--{$CallType|escape:'url'}--></h1> | <h1>Variante: Einfacher iframe mit <!--{$CallType|escape:'url'}--></h1> | ||
Version vom 21. Januar 2025, 14:20 Uhr
Ajax-Variante mit wiki
<script>
(function () {
const fetchURL = "https://gov.genealogy.net/item/wikihtml/SCHERGJO54EJ";
fetch(fetchURL)
.then(response => {
if (!response.ok) {
throw new Error(`HTTP-Fehler! Status: ${response.status}`);
}
return response.text();
})
.then(html => {
const widgetContainer = document.getElementById('widget-container');
// Shadow DOM erstellen
const shadow = widgetContainer.attachShadow({ mode: 'open' });
// Stile für das Widget im Shadow DOM hinzufügen
const style = document.createElement('style');
style.textContent = `
:host {
all: initial; /* Verhindert globale Stile */
display: block;
max-width: 1000px; /* Erweitere die Breite */
margin: 20px auto;
padding: 15px;
border: 1px solid #ccc;
background-color: #f9f9f9;
overflow: auto;
font-family: Arial, sans-serif; /* Setze Schriftart auf Arial */
}
table {
width: 100%;
table-layout: fixed; /* Verhindert Überdehnung */
border-collapse: collapse; /* Entfernt doppelte Rahmenlinien */
margin: 10px 0;
}
th, td {
border: 1px solid #ddd; /* Einfache Rahmenlinie */
padding: 10px;
text-align: left;
word-wrap: break-word; /* Zeilenumbruch für lange Wörter */
font-family: Arial, sans-serif; /* Schriftart innerhalb der Tabelle */
}
th {
background-color: #f2f2f2;
}
ul {
padding-left: 20px;
margin: 10px 0;
}
object {
max-width: 100%; /* Skaliere Karten auf Containerbreite */
height: auto;
display: block;
margin: 10px auto;
}
a {
color: #007BFF; /* Linkfarbe */
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
`;
// Geladenen HTML-Inhalt einfügen
const content = document.createElement('div');
content.innerHTML = html;
// Stile und Inhalte in das Shadow DOM einfügen
shadow.appendChild(style);
shadow.appendChild(content);
})
.catch(error => {
console.error('Fehler beim Laden:', error);
const widgetContainer = document.getElementById('widget-container');
widgetContainer.textContent = "Fehler: Inhalte konnten nicht geladen werden.";
});
})();
</script>
Variante: Einfacher iframe mit
Variante: responsiv mit
<style>
body {
margin: 0;
padding: 0;
font-family: Arial, sans-serif;
}
.iframe-container {
width: 100%; /* Container hat immer die volle Breite des Viewports */
position: relative; /* Wichtig für absolute Positionierung */
padding-top: 56.25%; /* Seitenverhältnis 16:9 */
}
iframe {
position: absolute;
top: 0;
left: 0;
width: 100vw; /* Breite des Viewports */
height: calc(100vw * 0.5625); /* Höhe proportional zur Breite (16:9) */
transform-origin: top left; /* Skalierung startet oben links */
}
/* Media Queries für kleinere Bildschirme */
@media (max-width: 768px) {
iframe {
transform: scale(0.9); /* Skaliere den iframe-Inhalt */
}
}
@media (max-width: 480px) {
iframe {
transform: scale(0.8); /* Weitere Skalierung für kleine Geräte */
}
}
</style>
