WebSite X5Help Center

 
Fabio R.
Fabio R.
User

Accessibilità  it

Автор: Fabio R.
Просмотрено 113, Подписчики 2, Размещенный 0  

ciao

in attesa che Incomedia offra una realizzazione più completa per quanto riguarda l'accessibilità, posto un file di testo con un codice che poptrebbe essere d'aiuto.

Mi sono fatto aiutare dall' AI per cui questo codice non è perfetto; se qualcuno vuole perfezionarlo, modificarlo e renderlo migliore graficametne è ben accetto.

i problemi riscontrati sono:

1) il pulsante in fondo a destra, per il rimando in cima la sito, non rimane in fondo ma si ferma ad una certa posizione.

2) graficamente non è bellissimo

3) il puntatore assume un disegno non propriamente bello

4) alla riga 192 occorre che inseriate il link di dove avete posizionato l'immagine

5) e poi chissà quando qualche boss ci metterà mano, se vorrà farlo ovviamente, salterà fuori il mondo..ù

grazie se vorrete provare.

Fabio

Размещено
20 Ответы - 4 Полезно
Fabio R.
Fabio R.
User
Автор

il codice

<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Sito Accessibile</title>
<style>
/* Stili di base */
body {
position: relative;
font-size: 16px;
background-color: white;
color: black;
transition: all 0.3s ease;
font-family: "NomeFontOriginale", sans-serif;
cursor: auto;
}
.monochrome {
filter: grayscale(1) !important;
}
.zoom-container {
transform: scale(1);
transform-origin: center top;
}
/* ICONA DI ACCESSIBILITÀ */
.accessibility-icon {
position: fixed;
top: 100px;
left: 10px;
width: 40px;
height: 40px;
cursor: pointer;
z-index: 1200;
}
/* PANNELLO DI ACCESSIBILITÀ */
.accessibility-panel {
position: fixed;
top: 10px;
left: 50%;
transform: translateX(-50%);
background: #eee;
padding: 20px;
border-radius: 5px;
box-shadow: 2px 2px 10px rgba(0,0,0,0.3);
z-index: 1001;
display: none;
flex-direction: column;
}
/* Header interno del pannello */
#accessibilityHeader {
display: flex;
align-items: center;
margin-bottom: 10px;
}
.panel-title {
font-size: 18px;
font-weight: bold;
margin: 0 auto;
text-align: center;
}
/* Contenitore per il feedback */
#feedbackContainer {
display: inline-block;
}
.button-container {
display: flex;
justify-content: center;
flex-wrap: wrap;
gap: 10px;
}
.accessibility-panel button {
font-size: 14px;
padding: 8px;
background-color: #007bff;
color: white;
border: none;
cursor: pointer;
border-radius: 4px;
width: 150px;
text-align: center;
}
.accessibility-panel button:hover {
background-color: #0056b3;
}
/* Pulsanti specifici */
#guidedReadingButton,
#readContentButton {
background-color: #006400 !important;
color: #FFFFE0 !important;
}
#monochromeButton {
background-color: #333333 !important;
color: #FFFFFF !important;
}
#readingMaskButton {
background-color: #00008B !important;
color: #FFFFFF !important;
}
/* Pulsante per evidenziare il passaggio del mouse */
#hoverHighlightButton {
background-color: #8A2BE2 !important;
color: #FFF !important;
}
/* I pulsanti per il puntatore non hanno regole speciali (usa gli stili standard) */
button#closeButton {
background-color: red;
color: white;
}
button#closeButton:hover {
background-color: darkred;
}
/* Pulsante Reset: sfondo giallo, testo blu in maiuscolo, bordo nero di 2px */
#resetButton {
background-color: yellow !important;
color: blue !important;
text-transform: uppercase;
border: 2px solid black;
}
/* BARRA DI LETTURA GUIDATA */
#guidedBar {
position: fixed;
width: 500px !important;
height: 10px !important;
background-color: blue !important;
pointer-events: none;
transform: translate(-50%, 0);
z-index: 1100 !important;
display: none;
}
/* Nel nuovo approccio, il cursore viene impostato tramite cursor del body dal JS */

/* Overlay per la Maschera di Lettura */
.readingMaskOverlay {
position: absolute;
left: 0;
width: 100%;
background: rgba(0,0,0,0.75);
pointer-events: none;
z-index: 800;
}
#readingMaskOverlayTop { top: 0; }
#readingMaskOverlayBottom { /* Posizione aggiornata dinamicamente */ }
/* Banda evidenziatrice della Maschera */
#readingMaskBand {
position: absolute;
left: 0;
width: 100%;
height: 150px;
background: transparent;
border: 3px solid #FFFFE0;
pointer-events: none;
z-index: 801;
isolation: isolate;
}
/* Div per Google Maps */
#imPageRow_7 { position: relative; }
/* Overlay per Google Maps */
#mapsOverlay {
position: absolute;
top: 0; left: 0; right: 0; bottom: 0;
background: transparent;
z-index: 999;
cursor: default !important;
pointer-events: auto;
}
/* Feedback visivo (toast) */
.feedback-message {
display: inline-block;
background: rgba(0,0,0,0.8);
color: #fff;
padding: 5px 10px;
border-radius: 4px;
font-size: 14px;
opacity: 0;
transition: opacity 0.5s;
animation: slideLeftReturn 2s ease;
}
@keyframes slideLeftReturn {
0% { transform: translateX(0); }
30% { transform: translateX(-50px); }
60% { transform: translateX(0); }
100% { transform: translateX(0); }
}
/* Evidenziazione hover: se il body ha la classe "hover-highlight" */
.hover-highlight *:hover {
outline: 1px solid #FF0000 !important;
}
</style>
</head>
<body class="zoom-container">
<!-- Pulsante di accesso al pannello -->
<img src="https://www.nomesito.it/immagine.jpg" alt="Accessibilità" class="accessibility-icon" id="accessIcon" onclick="togglePanel()">

<!-- Pannello di Accessibilità -->
<div class="accessibility-panel" id="accessibilityPanel">
<div id="accessibilityHeader">
<div class="panel-title">Pannello Accessibilità</div>
<div id="feedbackContainer"></div>
</div>
<div class="button-container">
<!-- Pulsanti per font -->
<button onclick="increaseFontSize()">Aumenta Font</button>
<button onclick="decreaseFontSize()">Diminuisci Font</button>
<!-- Pulsanti per interlinea -->
<button onclick="increaseLineSpacing()">Aumenta Interlinea</button>
<button onclick="decreaseLineSpacing()">Diminuisci Interlinea</button>
<!-- Pulsanti per zoom -->
<button onclick="zoomIn()">Zoom +</button>
<button onclick="zoomOut()">Zoom -</button>
<!-- Altri pulsanti -->
<button onclick="toggleGuidedReading()" id="guidedReadingButton">Attiva Lettura Guidata</button>
<button onclick="toggleReadContent()" id="readContentButton">Leggi Contenuto</button>
<button onclick="toggleMonochrome()" id="monochromeButton">Attiva Modalità Monocromatica</button>
<button onclick="toggleReadingMask()" id="readingMaskButton">Attiva Maschera Aiuto Lettura</button>
<button onclick="toggleHoverHighlight()" id="hoverHighlightButton">evidenzia passaggio mouse</button>
<!-- Pulsanti per il puntatore -->
<button onclick="enlargePointer()">Ingrandisci Puntatore</button>
<button onclick="decreasePointer()">Diminuisci Puntatore</button>
<button onclick="togglePointerColor()">Cambia Colore Puntatore</button>
<!-- Pulsante Reset posizionato come ultimo -->
<button id="resetButton" onclick="resetStyles()">Resetta</button>
<button id="closeButton" onclick="togglePanel()">Chiudi</button>
</div>
</div>

<!-- Barra di Lettura Guidata -->
<div id="guidedBar"></div>

<!-- Div per Google Maps -->
<div id="imPageRow_7">
<!-- Embed di Google Maps gestito dal CMS -->
<div id="mapsOverlay" onclick="toggleMapsOverlay()"></div>
</div>

<!-- Script JavaScript -->
<script>
//---------------------------
// Funzione per il Feedback Visivo (toast)
//---------------------------
function showFeedback(message) {
const container = document.getElementById("feedbackContainer");
if (!container) return;
const feedback = document.createElement("div");
feedback.className = "feedback-message";
feedback.innerText = message;
container.appendChild(feedback);
setTimeout(() => { feedback.style.opacity = 1; }, 10);
setTimeout(() => { feedback.style.opacity = 0; }, 2000);
setTimeout(() => { feedback.remove(); }, 2500);
}

//---------------------------
// Impostazioni iniziali
//---------------------------
let defaultFontSize = parseFloat(window.getComputedStyle(document.body).fontSize);
let zoomLevel = parseFloat(localStorage.getItem("zoomLevel")) || 1;
let fontSize = parseFloat(localStorage.getItem("fontSize")) || defaultFontSize;
document.body.style.fontSize = fontSize + "px";
document.body.style.transform = `scale(${zoomLevel})`;

// Interlinea – default 1.5
let lineSpacing = parseFloat(localStorage.getItem("lineSpacing")) || 1.5;
function applyLineSpacing() {
let styleEl = document.getElementById("custom-line-height");
if (!styleEl) {
styleEl = document.createElement("style");
styleEl.id = "custom-line-height";
document.head.appendChild(styleEl);
}
styleEl.textContent = `
html, body, p, h1, h2, h3, h4, h5, h6, li, span, a, div {
line-height: ${lineSpacing} !important;
}
`;
}
applyLineSpacing();

let guidedReadingEnabled = (localStorage.getItem("guidedReadingEnabled") === "true");
let monochromeEnabled = (localStorage.getItem("monochromeEnabled") === "true");
let readingMaskEnabled = (localStorage.getItem("readingMaskEnabled") === "true");
let hoverHighlightEnabled = (localStorage.getItem("hoverHighlightEnabled") === "true");

// Gestione Evidenziazione Hover
function toggleHoverHighlight() {
hoverHighlightEnabled = !hoverHighlightEnabled;
localStorage.setItem("hoverHighlightEnabled", hoverHighlightEnabled);
const btn = document.getElementById("hoverHighlightButton");
if (hoverHighlightEnabled) {
document.body.classList.add("hover-highlight");
btn.textContent = "Disattiva evidenzia passaggio mouse";
showFeedback("Evidenziazione hover attivata");
} else {
document.body.classList.remove("hover-highlight");
btn.textContent = "evidenzia passaggio mouse";
showFeedback("Evidenziazione hover disattivata");
}
}
if (hoverHighlightEnabled) {
document.body.classList.add("hover-highlight");
document.getElementById("hoverHighlightButton").textContent = "Disattiva evidenzia passaggio mouse";
} else {
document.body.classList.remove("hover-highlight");
document.getElementById("hoverHighlightButton").textContent = "evidenzia passaggio mouse";
}

// Puntatore personalizzato:
// Impostiamo il cursore tramite un'immagine SVG generata dinamicamente.
let pointerSize = 32; // di default
// Colori disponibili: white (default), gray, red, blue, black
let pointerColors = ["white", "gray", "red", "blue", "black"];
let currentColorIndex = 0; // default white
let pointerColor = pointerColors[currentColorIndex];

function updateCursor() {
// SVG che rappresenta un cursore a freccia con la punta in alto (hotspot: 2,2)
// Qui utilizziamo un semplice path che ricorda quello standard di Windows
const svg = `<svg xmlns="http://www.w3.org/2000/svg" width="${pointerSize}" height="${pointerSize}" viewBox="0 0 32 32">
<path d="M2,2 L2,30 L10,22 L14,30 L22,30 L14,18 L22,10 L14,10 L10,16 Z" fill="${pointerColor}"/>
</svg>`;
const dataURI = "data:image/svg+xml;utf8," + encodeURIComponent(svg);
// Imposta hotspot a (2,2) per far coincidere la punta con il click
document.body.style.cursor = `url("${dataURI}") 2 2, auto`;
}
updateCursor();

function enlargePointer() {
pointerSize += 4;
updateCursor();
showFeedback("Puntatore ingrandito: " + pointerSize + "px");
}
function decreasePointer() {
pointerSize = Math.max(8, pointerSize - 4);
updateCursor();
showFeedback("Puntatore diminuito: " + pointerSize + "px");
}
function togglePointerColor() {
currentColorIndex = (currentColorIndex + 1) % pointerColors.length;
pointerColor = pointerColors[currentColorIndex];
updateCursor();
showFeedback("Puntatore colore: " + pointerColor);
}

let selectedVoice = null;
let currentBandTop = 0;
let lastPageY = 0;
let mouseX = 0, mouseY = 0;
let animationFrameRequested = false;

//---------------------------
// Carica le voci per la sintesi vocale
//---------------------------
function loadVoices() {
const voices = window.speechSynthesis.getVoices();
const italianVoices = voices.filter(voice => voice.lang.toLowerCase().includes('it'));
if (italianVoices.length > 0) {
let googleVoice = italianVoices.find(voice => voice.name.toLowerCase().includes('google'));
selectedVoice = googleVoice || italianVoices[0];
} else if (voices.length > 0) {
selectedVoice = voices[0];
}
}
window.speechSynthesis.onvoiceschanged = loadVoices;
loadVoices();

//---------------------------
// Funzioni per la Maschera di Lettura
//---------------------------
function updateReadingMaskOverlays() {
const docHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
const topOverlay = document.getElementById("readingMaskOverlayTop");
const bottomOverlay = document.getElementById("readingMaskOverlayBottom");
if (topOverlay) { topOverlay.style.height = bandPosition() + "px"; }
if (bottomOverlay) {
bottomOverlay.style.top = (bandPosition() + 150) + "px";
bottomOverlay.style.height = (docHeight - (bandPosition() + 150)) + "px";
}
}
function bandPosition() { return currentBandTop; }

//---------------------------
// Funzioni per il Pannello di Accessibilità
//---------------------------
function togglePanel() {
let panel = document.getElementById("accessibilityPanel");
let currentDisplay = window.getComputedStyle(panel).display;
panel.style.display = (currentDisplay === "none") ? "block" : "none";
}
function applyFontSize(size) {
document.querySelectorAll("body, p, h1, h2, h3, h4, h5, h6, a, li, span")
.forEach(el => { el.style.fontSize = size + "px"; });
}
function increaseFontSize() {
fontSize += 2;
applyFontSize(fontSize);
localStorage.setItem("fontSize", fontSize);
showFeedback("Dimensione font aumentata");
}
function decreaseFontSize() {
fontSize -= 2;
applyFontSize(fontSize);
localStorage.setItem("fontSize", fontSize);
showFeedback("Dimensione font diminuita");
}
function zoomIn() {
zoomLevel += 0.1;
document.body.style.transform = `scale(${zoomLevel})`;
localStorage.setItem("zoomLevel", zoomLevel);
showFeedback("Zoom aumentato");
}
function zoomOut() {
zoomLevel -= 0.1;
document.body.style.transform = `scale(${zoomLevel})`;
localStorage.setItem("zoomLevel", zoomLevel);
showFeedback("Zoom diminuito");
}
function resetStyles() {
fontSize = defaultFontSize;
zoomLevel = 1;
applyFontSize(fontSize);
document.body.style.transform = `scale(${zoomLevel})`;
localStorage.setItem("fontSize", fontSize);
localStorage.setItem("zoomLevel", zoomLevel);

guidedReadingEnabled = false;
localStorage.setItem("guidedReadingEnabled", guidedReadingEnabled);
const guidedBar = document.getElementById("guidedBar");
if (guidedBar) { guidedBar.style.display = "none"; }
document.getElementById("guidedReadingButton").textContent = "Attiva Lettura Guidata";

speechSynthesis.cancel();
document.getElementById("readContentButton").textContent = "Leggi Contenuto";

monochromeEnabled = false;
localStorage.setItem("monochromeEnabled", monochromeEnabled);
document.body.classList.remove("monochrome");
document.getElementById("monochromeButton").textContent = "Attiva Modalità Monocromatica";

readingMaskEnabled = false;
localStorage.setItem("readingMaskEnabled", readingMaskEnabled);
removeReadingMask();
document.getElementById("readingMaskButton").textContent = "Attiva Maschera Aiuto Lettura";

// Reset interlinea
lineSpacing = 1.5;
applyLineSpacing();
localStorage.setItem("lineSpacing", lineSpacing);

// Reset cursore personalizzato
pointerSize = 32;
currentColorIndex = 0;
pointerColor = pointerColors[currentColorIndex];
updateCursor();

showFeedback("Stili resettati");
}

//---------------------------
// FUNZIONI PER MODIFICARE INTERLINEA
//---------------------------
function increaseLineSpacing() {
lineSpacing += 0.1;
applyLineSpacing();
localStorage.setItem("lineSpacing", lineSpacing);
showFeedback("Interlinea aumentata");
}
function decreaseLineSpacing() {
lineSpacing = Math.max(1, lineSpacing - 0.1);
applyLineSpacing();
localStorage.setItem("lineSpacing", lineSpacing);
showFeedback("Interlinea diminuita");
}

//---------------------------
// Funzioni per interazioni con feedback
//---------------------------
function toggleGuidedReading() {
guidedReadingEnabled = !guidedReadingEnabled;
localStorage.setItem("guidedReadingEnabled", guidedReadingEnabled);
const btn = document.getElementById("guidedReadingButton");
if (guidedReadingEnabled) {
btn.textContent = "Disattiva Lettura Guidata";
document.getElementById("guidedBar").style.display = "block";
showFeedback("Lettura guidata attivata");
} else {
btn.textContent = "Attiva Lettura Guidata";
const guidedBar = document.getElementById("guidedBar");
if (guidedBar) { guidedBar.style.display = "none"; }
showFeedback("Lettura guidata disattivata");
}
}
function toggleReadContent() {
const btn = document.getElementById("readContentButton");
if (speechSynthesis.speaking) {
speechSynthesis.cancel();
btn.textContent = "Leggi Contenuto";
showFeedback("Sintesi vocale interrotta");
} else {
const content = document.body.innerText;
const utterance = new SpeechSynthesisUtterance(content);
if (selectedVoice) { utterance.voice = selectedVoice; }
utterance.rate = 0.8;
utterance.pitch = 1.1;
utterance.onend = function() { btn.textContent = "Leggi Contenuto"; };
speechSynthesis.speak(utterance);
btn.textContent = "Interrompi Lettura";
showFeedback("Sintesi vocale avviata");
}
}
function toggleMonochrome() {
monochromeEnabled = !monochromeEnabled;
localStorage.setItem("monochromeEnabled", monochromeEnabled);
const btn = document.getElementById("monochromeButton");
if (monochromeEnabled) {
document.body.classList.add("monochrome");
btn.textContent = "Disattiva Modalità Monocromatica";
showFeedback("Modalità monocromatica attivata");
} else {
document.body.classList.remove("monochrome");
btn.textContent = "Attiva Modalità Monocromatica";
showFeedback("Modalità monocromatica disattivata");
}
}
function toggleReadingMask() {
readingMaskEnabled = !readingMaskEnabled;
localStorage.setItem("readingMaskEnabled", readingMaskEnabled);
const btn = document.getElementById("readingMaskButton");
if (readingMaskEnabled) {
btn.textContent = "Disattiva Maschera Aiuto Lettura";
createReadingMask();
updateReadingMaskOverlays();
showFeedback("Maschera aiuto lettura attivata");
} else {
btn.textContent = "Attiva Maschera Aiuto Lettura";
removeReadingMask();
showFeedback("Maschera aiuto lettura disattivata");
}
}

//---------------------------
// Creazione / Rimozione della Maschera di Lettura
//---------------------------
function createReadingMask() {
if (!document.getElementById("readingMaskOverlayTop")) {
const overlayTop = document.createElement("div");
overlayTop.id = "readingMaskOverlayTop";
overlayTop.className = "readingMaskOverlay";
overlayTop.style.top = "0";
document.body.appendChild(overlayTop);
}
if (!document.getElementById("readingMaskOverlayBottom")) {
const overlayBottom = document.createElement("div");
overlayBottom.id = "readingMaskOverlayBottom";
overlayBottom.className = "readingMaskOverlay";
document.body.appendChild(overlayBottom);
}
if (!document.getElementById("readingMaskBand")) {
const band = document.createElement("div");
band.id = "readingMaskBand";
document.body.appendChild(band);
}
}
function removeReadingMask() {
const overlayTop = document.getElementById("readingMaskOverlayTop");
const overlayBottom = document.getElementById("readingMaskOverlayBottom");
const band = document.getElementById("readingMaskBand");
if (overlayTop) { document.body.removeChild(overlayTop); }
if (overlayBottom) { document.body.removeChild(overlayBottom); }
if (band) { document.body.removeChild(band); }
}

//---------------------------
// Listener globale per il mouse (with throttling)
//---------------------------
document.addEventListener("mousemove", function(e) {
mouseX = e.pageX;
mouseY = e.pageY;
lastPageY = e.pageY;
currentBandTop = e.pageY - 75;
const band = document.getElementById("readingMaskBand");
if (band) { band.style.top = (e.pageY - 75) + "px"; }
if (!animationFrameRequested) {
animationFrameRequested = true;
requestAnimationFrame(updatePositions);
}
}, { passive: true });

// Listener per l'overlay in Google Maps
const mapsOverlay = document.getElementById("mapsOverlay");
if (mapsOverlay) {
mapsOverlay.addEventListener("mousemove", function(e) {
mouseX = e.pageX;
mouseY = e.pageY;
lastPageY = e.pageY;
currentBandTop = e.pageY - 75;
if (!animationFrameRequested) {
animationFrameRequested = true;
requestAnimationFrame(updatePositions);
}
}, { passive: true });
}

function updatePositions() {
if (guidedReadingEnabled) {
const guidedBar = document.getElementById("guidedBar");
if (guidedBar) {
guidedBar.style.display = 'block';
guidedBar.style.left = mouseX + "px";
guidedBar.style.top = mouseY + "px";
guidedBar.style.width = "500px";
guidedBar.style.height = "10px";
}
}
if (readingMaskEnabled) { updateReadingMaskOverlays(); }
animationFrameRequested = false;
}

//---------------------------
// Aggiornamento della posizione durante lo scroll
//---------------------------
window.addEventListener("scroll", function() {
if (readingMaskEnabled) { updateReadingMaskOverlays(); }
});

//---------------------------
// Funzione per Google Maps: disabilita pointer events temporaneamente
//---------------------------
function toggleMapsOverlay() {
const overlay = document.getElementById("mapsOverlay");
if (overlay) {
overlay.style.pointerEvents = "none";
setTimeout(() => { overlay.style.pointerEvents = "auto"; }, 5000);
}
}

//---------------------------
// Ripristino degli stati salvati al caricamento
//---------------------------
if (guidedReadingEnabled) {
document.getElementById("guidedReadingButton").textContent = "Disattiva Lettura Guidata";
document.getElementById("guidedBar").style.display = "block";
} else {
document.getElementById("guidedReadingButton").textContent = "Attiva Lettura Guidata";
}
if (monochromeEnabled) {
document.body.classList.add("monochrome");
document.getElementById("monochromeButton").textContent = "Disattiva Modalità Monocromatica";
} else {
document.body.classList.remove("monochrome");
document.getElementById("monochromeButton").textContent = "Attiva Modalità Monocromatica";
}
if (readingMaskEnabled) {
createReadingMask();
document.getElementById("readingMaskButton").textContent = "Disattiva Maschera Aiuto Lettura";
updateReadingMaskOverlays();
} else {
removeReadingMask();
document.getElementById("readingMaskButton").textContent = "Attiva Maschera Aiuto Lettura";
}
</script>

<!-- Possibilità di aggiungere un elemento <audio> per feedback audio -->

</body>
</html>

Читать больше
Размещено От Fabio R.
Giancarlo B.
Giancarlo B.
User

puoi vederlo e valutarlo sul mio sito, ciao.

Читать больше
Размещено От Giancarlo B.
Claudio D.
Claudio D.
Moderator
Giancarlo B.

pure io, me lo sono modificato per alcune esigenze particolari, senza "toccare" i suoi credits

Читать больше
Размещено От Claudio D.
Fabio R.
Fabio R.
User
Автор

sigh, tanto lavoro per niente...eheheh

bè dai, ci ho messo volontà...

grazie

Читать больше
Размещено От Fabio R.
Fabio R.
Fabio R.
User
Автор

non ci si deve nemmeno registrare? che strano... sai se si può impostare la lingua Italiana come default?

grazie

Читать больше
Размещено От Fabio R.
Giancarlo B.
Giancarlo B.
User
Claudio D.
Giancarlo B. io utilizzo questo: https://accessibility-widget.pages.dev/ pure io, me lo sono modificato per alcune esigenze particolari, senza "toccare" i suoi credits

si si carissimo Claudio, con un piccolo CSS ho fatto qualche aggiustamento per il mio sito wink

Читать больше
Размещено От Giancarlo B.
Roberto M.
Roberto M.
User

Io me ne sono fatto uno personalizzato con codice extra documentato che è QUESTO. Per non perdere tempo si può utilizzare anche QUESTO di terze parti già completo e free.

Читать больше
Размещено От Roberto M.
Claudio D.
Claudio D.
Moderator
Fabio R.
non ci si deve nemmeno registrare? che strano... sai se si può impostare la lingua Italiana come default? grazie

non devi fare nulla, penso prenda la lingua del sito

Читать больше
Размещено От Claudio D.
Fabio R.
Fabio R.
User
Автор

a me prende l'Inglese di default...cmq non è un problema. grazie

Читать больше
Размещено От Fabio R.
Giancarlo B.
Giancarlo B.
User
Fabio R.
a me prende l'Inglese di default...cmq non è un problema. grazie

dovrebbe essere come detto Claudio ma mettilo online per valutare bene

Читать больше
Размещено От Giancarlo B.
Giancarlo B.
Giancarlo B.
User

anteprima website è inglese online italiano

Читать больше
Размещено От Giancarlo B.
Giancarlo B.
Giancarlo B.
User

online

Читать больше
Размещено От Giancarlo B.
Fabio R.
Fabio R.
User
Автор

ottimo.

grazie

Читать больше
Размещено От Fabio R.
Giancarlo B.
Giancarlo B.
User
Fabio R.
che strano però, in questo sito non lo vedo mica il widget.. https://www.parafarmaciatorlai.it/ grazie

va messo prima della chiusura del TAG Body mi sbaglierò ma io non lo vedo il codice

Читать больше
Размещено От Giancarlo B.
Giancarlo B.
Giancarlo B.
User

perfetto ora si vede, ciao.

Читать больше
Размещено От Giancarlo B.
Fabio R.
Fabio R.
User
Автор

risolto, era un script di iubenda

Читать больше
Размещено От Fabio R.
Giancarlo B.
Giancarlo B.
User

ma dove lo hai inserito esattamente?

Читать больше
Размещено От Giancarlo B.
Fabio R.
Fabio R.
User
Автор

prima della chiusura del tag  body

Читать больше
Размещено От Fabio R.