Problems on login page and in the program itself. Buttons are not visible until I hover the mouse over them.
As mentioned on the other thread, I think you have other components on the page that are affecting styling.
The Online Editor is the only component you should have on the page. Remove the other components and you should be good.
@ben I only have the Online Editor on the page.
I don’t have this problem on any of my other pages.
The code is in Templates and I’m not sure how I can deactivate it for just this on Editor Page.
Maybe you can look in the code to see what might be causing problems for CMS 2?
<!-- ======================= -->
<!-- Cookie Banner + Modal -->
<!-- ======================= -->
<style>
/* Enkel base-stil som henter farger fra JS-variablene */
:root{
--ks-brand: #1e3a8a;
--ks-ok: #22c55e;
--ks-dark: #111111;
--ks-light: #ffffff;
--ks-text: #0a0a0a;
--ks-subtle: #9ec5ff;
}
/* Banner er skjult som default, JS viser det kun hvis ingen prefs */
#ks-cookie-banner { display:none; position:fixed; left:0; right:0; bottom:0; padding:16px; background:var(--ks-dark); color:#fff; z-index:9999; }
#ks-cookie-banner .ks-inner { display:flex; gap:10px; align-items:center; justify-content:center; flex-wrap:wrap; max-width:1200px; margin:0 auto; }
#ks-cookie-banner a { color:var(--ks-subtle); text-decoration:underline; }
.ks-btn { padding:10px 14px; border:0; border-radius:8px; cursor:pointer; font-weight:600; }
.ks-btn-primary { background:var(--ks-light); color:var(--ks-brand); }
.ks-btn-secondary { background:var(--ks-light); color:#222; }
/* Flytende knapp for å åpne innstillinger når som helst */
#ks-cookie-settings-btn {
position:fixed; left:16px; bottom:16px; padding:10px 14px; border:0; border-radius:8px;
background:var(--ks-light); color:var(--ks-brand); box-shadow:0 4px 14px rgba(0,0,0,.15);
cursor:pointer; z-index:9998; font-weight:600;
}
/* Modal */
#ks-cookie-modal[aria-hidden="true"]{ display:none; }
#ks-cookie-modal[aria-hidden="false"]{ display:flex; }
#ks-cookie-modal {
position:fixed; inset:0; background:rgba(0,0,0,.45); align-items:center; justify-content:center; z-index:10000;
}
#ks-cookie-modal .ks-card {
background:#fff; max-width:520px; width:92%; border-radius:12px; box-shadow:0 10px 30px rgba(0,0,0,.25);
}
#ks-cookie-modal .ks-card-header {
padding:18px 20px; border-bottom:1px solid #eee; display:flex; align-items:center; justify-content:space-between;
}
#ks-cookie-modal .ks-card-body { padding:18px 20px; line-height:1.5; }
#ks-cookie-modal .ks-card-actions { padding:16px 20px; display:flex; gap:10px; justify-content:flex-end; border-top:1px solid #eee; }
#ks-close { background:transparent; border:0; font-size:20px; cursor:pointer; }
.ks-switch { display:inline-flex; align-items:center; gap:8px; cursor:pointer; }
</style>
<!-- Banner -->
<div id="ks-cookie-banner" role="region" aria-label="Informasjonskapsler">
<div class="ks-inner">
<span>Vi bruker informasjonskapsler for analyse og annonsering. Velg samtykke:</span>
<button id="ks-accept-all" class="ks-btn ks-btn-primary">Godta alle</button>
<button id="ks-accept-necessary" class="ks-btn ks-btn-secondary">Kun nødvendige</button>
<a href="/om_oss/personvern/">Les mer</a>
</div>
</div>
<!-- Flytende “Cookie-innstillinger”-knapp -->
<button id="ks-cookie-settings-btn" type="button">Cookie-innstillinger</button>
<!-- Modal for innstillinger -->
<div id="ks-cookie-modal" aria-hidden="true" role="dialog" aria-labelledby="ks-cookie-title">
<div class="ks-card" role="document">
<div class="ks-card-header">
<h2 id="ks-cookie-title" style="margin:0;font-size:18px;">Cookie-innstillinger</h2>
<button id="ks-close" aria-label="Lukk">×</button>
</div>
<div class="ks-card-body">
<p style="margin-top:0">
Vi bruker informasjonskapsler for nødvendige funksjoner, analyse og annonsering/personalisering.
Du kan endre innstillingene nedenfor. <a href="/om_oss/personvern/" style="color:var(--ks-brand);text-decoration:underline;">Les mer</a>.
</p>
<div style="display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;margin:14px 0;">
<div><strong>Nødvendige</strong><br>Brukes for sikkerhet og grunnleggende funksjoner.</div>
<span style="font-weight:600;">Alltid på</span>
</div>
<div style="display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;margin:14px 0;">
<div><strong>Analyse</strong><br>Hjelper oss å forstå bruk av nettsiden (GA4).</div>
<label class="ks-switch"><input type="checkbox" id="ks-analytics"><span>På</span></label>
</div>
<div style="display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;margin:14px 0;">
<div><strong>Annonsering & personalisering</strong><br>Målrettede annonser og personaliserte opplevelser.</div>
<label class="ks-switch"><input type="checkbox" id="ks-ads"><span>På</span></label>
</div>
</div>
<div class="ks-card-actions">
<button id="ks-necessary" class="ks-btn" style="background:var(--ks-dark);color:#fff;">Kun nødvendige</button>
<button id="ks-save" class="ks-btn" style="background:var(--ks-brand);color:#fff;">Lagre valg</button>
<button id="ks-accept-all-2" class="ks-btn" style="background:var(--ks-ok);color:var(--ks-text);font-weight:700;">Godta alle</button>
</div>
</div>
</div>
<script>
(function(){
// Synk CSS-variabler fra JS dersom du vil endre farger via window.__KS_COLORS__
try{
const C = window.__KS_COLORS__ || {};
const r = document.documentElement;
if (C.brand) r.style.setProperty('--ks-brand', C.brand);
if (C.ok) r.style.setProperty('--ks-ok', C.ok);
if (C.dark) r.style.setProperty('--ks-dark', C.dark);
if (C.light) r.style.setProperty('--ks-light', C.light);
if (C.text) r.style.setProperty('--ks-text', C.text);
if (C.subtle) r.style.setProperty('--ks-subtle', C.subtle);
}catch(e){}
const banner = document.getElementById('ks-cookie-banner');
const settingsBtn = document.getElementById('ks-cookie-settings-btn');
const modal = document.getElementById('ks-cookie-modal');
const closeBtn = document.getElementById('ks-close');
const analyticsCb = document.getElementById('ks-analytics');
const adsCb = document.getElementById('ks-ads');
// Vis banner kun hvis vi ikke har et valg fra før
if (!window.ksHasConsent || !window.ksHasConsent()) {
banner.style.display = 'block';
}
// Banner-knapper
document.getElementById('ks-accept-all').onclick = () => {
window.ksApplyConsent({
analytics_storage: 'granted',
ad_storage: 'granted',
ad_user_data: 'granted',
ad_personalization: 'granted'
});
banner.remove();
};
document.getElementById('ks-accept-necessary').onclick = () => {
window.ksApplyConsent({
analytics_storage: 'denied',
ad_storage: 'denied',
ad_user_data: 'denied',
ad_personalization: 'denied'
});
banner.remove();
};
// Åpne/lukke modal
function openModal(){
// Les lagrede prefs og sett brytere
try {
const saved = JSON.parse(localStorage.getItem('ks_cookie_consent_v2'));
analyticsCb.checked = saved ? (saved.analytics_storage === 'granted') : false;
const adsGranted = saved && (saved.ad_storage === 'granted' || saved.ad_user_data === 'granted' || saved.ad_personalization === 'granted');
adsCb.checked = !!adsGranted;
} catch(e) {
analyticsCb.checked = false;
adsCb.checked = false;
}
modal.setAttribute('aria-hidden', 'false');
}
function closeModal(){
modal.setAttribute('aria-hidden', 'true');
}
settingsBtn.addEventListener('click', openModal);
closeBtn.addEventListener('click', closeModal);
modal.addEventListener('click', e => { if (e.target === modal) closeModal(); });
document.addEventListener('keydown', e => { if (e.key === 'Escape') closeModal(); });
// Modal-knapper
document.getElementById('ks-save').addEventListener('click', () => {
const prefs = {
analytics_storage: analyticsCb.checked ? 'granted' : 'denied',
ad_storage: adsCb.checked ? 'granted' : 'denied',
ad_user_data: adsCb.checked ? 'granted' : 'denied',
ad_personalization: adsCb.checked ? 'granted' : 'denied'
};
window.ksApplyConsent(prefs);
closeModal();
});
document.getElementById('ks-necessary').addEventListener('click', () => {
window.ksApplyConsent({
analytics_storage: 'denied',
ad_storage: 'denied',
ad_user_data: 'denied',
ad_personalization: 'denied'
});
closeModal();
});
document.getElementById('ks-accept-all-2').addEventListener('click', () => {
window.ksApplyConsent({
analytics_storage: 'granted',
ad_storage: 'granted',
ad_user_data: 'granted',
ad_personalization: 'granted'
});
closeModal();
});
// Valgfritt: eksponer for lenker/meny
window.openCookieSettings = openModal;
})();
</script>
It’s really hard to solve your issues when we can only see snapshots of the code, to quickly solve problems we need to see the entire picture.
- Where is this code in the Template…
- Have you pasted it in the body or the head, is it broken up throughout the template?
- Can you share the entire Template from Elements so we can see?
- If you remove this custom code from your Template does it fix the problem?
I removed the code, but the problem is the same:
Here is the code from the Template:
{{page.customPageStart}}
{{page.componentPageStart}}
<!doctype html>
<html class="scroll-smooth" {{page.languageAttributes}}>
<head>
<!-- Google tag (gtag.js) -->
<!-- ======================= -->
<!-- Consent Mode v2 (HEAD) -->
<!-- ======================= -->
<script>
// --- FARGER/BRANDING (enkle variabler du kan endre) ---
window.__KS_COLORS__ = {
brand: '#1e3a8a', // Primær (lenker/CTA)
ok: '#22c55e', // Godta alle
dark: '#111111', // Mørk bakgrunn
light: '#ffffff', // Lys bakgrunn
text: '#0a0a0a', // Mørk tekst
subtle: '#9ec5ff' // Link i banner
};
// --- DATALAYER/GTAG ---
window.dataLayer = window.dataLayer || [];
function gtag(){ dataLayer.push(arguments); }
// 1) Alltid sett konservativt default FØR Google-laster
gtag('consent', 'default', {
ad_storage: 'denied',
analytics_storage: 'denied',
ad_user_data: 'denied',
ad_personalization: 'denied',
functionality_storage: 'granted',
security_storage: 'granted'
});
// --- HJELPERE FOR LAGRING ---
function ksSetConsentMarkerCookie() {
// Marker at bruker har tatt et valg (1 år)
document.cookie = "ks_consent_set=1; Max-Age=31536000; Path=/; SameSite=Lax; Secure";
}
function ksGetCookie(name){
const m = document.cookie.match('(?:^|; )' + name.replace(/([.$?*|{}()[\]\\/+^])/g,'\\$1') + '=([^;]*)');
return m ? decodeURIComponent(m[1]) : null;
}
function ksGetSavedPrefs(){
try { return JSON.parse(localStorage.getItem('ks_cookie_consent_v2')); }
catch(e){ return null; }
}
// 2) Gjenopprett tidligere valg SÅ TIDLIG SOM MULIG
(function ksRestoreConsentEarly(){
const prefs = ksGetSavedPrefs();
if (prefs && typeof prefs === 'object') {
gtag('consent', 'update', prefs);
ksSetConsentMarkerCookie();
}
})();
// 3) Globale hjelpere tilgjengelig for resten av siden
window.ksHasConsent = function () {
// Et enkelt signal: enten prefs lagret eller markør-cookie
return !!(ksGetSavedPrefs() || ksGetCookie('ks_consent_set'));
};
window.ksApplyConsent = function(prefs){
gtag('consent', 'update', prefs);
try { localStorage.setItem('ks_cookie_consent_v2', JSON.stringify(prefs)); } catch(e){}
ksSetConsentMarkerCookie();
};
// Valgfri: enkel “reset” for testing (bruk i konsoll ved behov)
window.ksResetConsent = function(){
try { localStorage.removeItem('ks_cookie_consent_v2'); } catch(e){}
document.cookie = "ks_consent_set=; Max-Age=0; Path=/; SameSite=Lax; Secure";
};
</script>
<!-- 4) Last deretter Google tag (bytt GA4-ID) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-HK3F5"></script>
<script>
gtag('js', new Date());
gtag('config', 'G-HK3F'); // ← din GA4-ID
</script>
{{page.customHeadStart}}
{{page.componentHeadStart}}
<meta charset="utf-8">
<meta name="theme-color" content="#D2DBE5" />
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="viewport" content="width=device-width">
<!--
<script type="text/javascript">
(function(c,l,a,r,i,t,y){
c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
})(window, document, "clarity", "script", "ojhydkc81i");
</script>
-->
{{page.componentHeader}}
{{page.opengraph}}
{{page.customHeader}}
<title>{{page.title}}</title>
{{page.componentCSS}}
{{page.customCSS}}
{{page.componentJS}}
{{page.customJS}}
{{page.componentHeadEnd}}
{{page.customHeadEnd}}
{{page.componentCSS}}
{{page.customCSS}}
</head>
<body>
{{page.customBodyStart}}
{{page.componentBodyStart}}
{{page.content}}
{{page.componentBodyEnd}}
<!-- ======================= -->
<!-- Cookie Banner + Modal -->
<!-- ======================= -->
<style>
/* Enkel base-stil som henter farger fra JS-variablene */
:root{
--ks-brand: #1e3a8a;
--ks-ok: #22c55e;
--ks-dark: #111111;
--ks-light: #ffffff;
--ks-text: #0a0a0a;
--ks-subtle: #9ec5ff;
}
/* Banner er skjult som default, JS viser det kun hvis ingen prefs */
#ks-cookie-banner { display:none; position:fixed; left:0; right:0; bottom:0; padding:16px; background:var(--ks-dark); color:#fff; z-index:9999; }
#ks-cookie-banner .ks-inner { display:flex; gap:10px; align-items:center; justify-content:center; flex-wrap:wrap; max-width:1200px; margin:0 auto; }
#ks-cookie-banner a { color:var(--ks-subtle); text-decoration:underline; }
.ks-btn { padding:10px 14px; border:0; border-radius:8px; cursor:pointer; font-weight:600; }
.ks-btn-primary { background:var(--ks-light); color:var(--ks-brand); }
.ks-btn-secondary { background:var(--ks-light); color:#222; }
/* Flytende knapp for å åpne innstillinger når som helst */
#ks-cookie-settings-btn {
position:fixed; left:16px; bottom:16px; padding:10px 14px; border:0; border-radius:8px;
background:var(--ks-light); color:var(--ks-brand); box-shadow:0 4px 14px rgba(0,0,0,.15);
cursor:pointer; z-index:9998; font-weight:600;
}
/* Modal */
#ks-cookie-modal[aria-hidden="true"]{ display:none; }
#ks-cookie-modal[aria-hidden="false"]{ display:flex; }
#ks-cookie-modal {
position:fixed; inset:0; background:rgba(0,0,0,.45); align-items:center; justify-content:center; z-index:10000;
}
#ks-cookie-modal .ks-card {
background:#fff; max-width:520px; width:92%; border-radius:12px; box-shadow:0 10px 30px rgba(0,0,0,.25);
}
#ks-cookie-modal .ks-card-header {
padding:18px 20px; border-bottom:1px solid #eee; display:flex; align-items:center; justify-content:space-between;
}
#ks-cookie-modal .ks-card-body { padding:18px 20px; line-height:1.5; }
#ks-cookie-modal .ks-card-actions { padding:16px 20px; display:flex; gap:10px; justify-content:flex-end; border-top:1px solid #eee; }
#ks-close { background:transparent; border:0; font-size:20px; cursor:pointer; }
.ks-switch { display:inline-flex; align-items:center; gap:8px; cursor:pointer; }
</style>
<!-- Banner -->
<div id="ks-cookie-banner" role="region" aria-label="Informasjonskapsler">
<div class="ks-inner">
<span>Vi bruker informasjonskapsler for analyse og annonsering. Velg samtykke:</span>
<button id="ks-accept-all" class="ks-btn ks-btn-primary">Godta alle</button>
<button id="ks-accept-necessary" class="ks-btn ks-btn-secondary">Kun nødvendige</button>
<a href="/om_oss/personvern/">Les mer</a>
</div>
</div>
<!-- Flytende “Cookie-innstillinger”-knapp -->
<button id="ks-cookie-settings-btn" type="button">Cookie-innstillinger</button>
<!-- Modal for innstillinger -->
<div id="ks-cookie-modal" aria-hidden="true" role="dialog" aria-labelledby="ks-cookie-title">
<div class="ks-card" role="document">
<div class="ks-card-header">
<h2 id="ks-cookie-title" style="margin:0;font-size:18px;">Cookie-innstillinger</h2>
<button id="ks-close" aria-label="Lukk">×</button>
</div>
<div class="ks-card-body">
<p style="margin-top:0">
Vi bruker informasjonskapsler for nødvendige funksjoner, analyse og annonsering/personalisering.
Du kan endre innstillingene nedenfor. <a href="/om_oss/personvern/" style="color:var(--ks-brand);text-decoration:underline;">Les mer</a>.
</p>
<div style="display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;margin:14px 0;">
<div><strong>Nødvendige</strong><br>Brukes for sikkerhet og grunnleggende funksjoner.</div>
<span style="font-weight:600;">Alltid på</span>
</div>
<div style="display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;margin:14px 0;">
<div><strong>Analyse</strong><br>Hjelper oss å forstå bruk av nettsiden (GA4).</div>
<label class="ks-switch"><input type="checkbox" id="ks-analytics"><span>På</span></label>
</div>
<div style="display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;margin:14px 0;">
<div><strong>Annonsering & personalisering</strong><br>Målrettede annonser og personaliserte opplevelser.</div>
<label class="ks-switch"><input type="checkbox" id="ks-ads"><span>På</span></label>
</div>
</div>
<div class="ks-card-actions">
<button id="ks-necessary" class="ks-btn" style="background:var(--ks-dark);color:#fff;">Kun nødvendige</button>
<button id="ks-save" class="ks-btn" style="background:var(--ks-brand);color:#fff;">Lagre valg</button>
<button id="ks-accept-all-2" class="ks-btn" style="background:var(--ks-ok);color:var(--ks-text);font-weight:700;">Godta alle</button>
</div>
</div>
</div>
<script>
(function(){
// Synk CSS-variabler fra JS dersom du vil endre farger via window.__KS_COLORS__
try{
const C = window.__KS_COLORS__ || {};
const r = document.documentElement;
if (C.brand) r.style.setProperty('--ks-brand', C.brand);
if (C.ok) r.style.setProperty('--ks-ok', C.ok);
if (C.dark) r.style.setProperty('--ks-dark', C.dark);
if (C.light) r.style.setProperty('--ks-light', C.light);
if (C.text) r.style.setProperty('--ks-text', C.text);
if (C.subtle) r.style.setProperty('--ks-subtle', C.subtle);
}catch(e){}
const banner = document.getElementById('ks-cookie-banner');
const settingsBtn = document.getElementById('ks-cookie-settings-btn');
const modal = document.getElementById('ks-cookie-modal');
const closeBtn = document.getElementById('ks-close');
const analyticsCb = document.getElementById('ks-analytics');
const adsCb = document.getElementById('ks-ads');
// Vis banner kun hvis vi ikke har et valg fra før
if (!window.ksHasConsent || !window.ksHasConsent()) {
banner.style.display = 'block';
}
// Banner-knapper
document.getElementById('ks-accept-all').onclick = () => {
window.ksApplyConsent({
analytics_storage: 'granted',
ad_storage: 'granted',
ad_user_data: 'granted',
ad_personalization: 'granted'
});
banner.remove();
};
document.getElementById('ks-accept-necessary').onclick = () => {
window.ksApplyConsent({
analytics_storage: 'denied',
ad_storage: 'denied',
ad_user_data: 'denied',
ad_personalization: 'denied'
});
banner.remove();
};
// Åpne/lukke modal
function openModal(){
// Les lagrede prefs og sett brytere
try {
const saved = JSON.parse(localStorage.getItem('ks_cookie_consent_v2'));
analyticsCb.checked = saved ? (saved.analytics_storage === 'granted') : false;
const adsGranted = saved && (saved.ad_storage === 'granted' || saved.ad_user_data === 'granted' || saved.ad_personalization === 'granted');
adsCb.checked = !!adsGranted;
} catch(e) {
analyticsCb.checked = false;
adsCb.checked = false;
}
modal.setAttribute('aria-hidden', 'false');
}
function closeModal(){
modal.setAttribute('aria-hidden', 'true');
}
settingsBtn.addEventListener('click', openModal);
closeBtn.addEventListener('click', closeModal);
modal.addEventListener('click', e => { if (e.target === modal) closeModal(); });
document.addEventListener('keydown', e => { if (e.key === 'Escape') closeModal(); });
// Modal-knapper
document.getElementById('ks-save').addEventListener('click', () => {
const prefs = {
analytics_storage: analyticsCb.checked ? 'granted' : 'denied',
ad_storage: adsCb.checked ? 'granted' : 'denied',
ad_user_data: adsCb.checked ? 'granted' : 'denied',
ad_personalization: adsCb.checked ? 'granted' : 'denied'
};
window.ksApplyConsent(prefs);
closeModal();
});
document.getElementById('ks-necessary').addEventListener('click', () => {
window.ksApplyConsent({
analytics_storage: 'denied',
ad_storage: 'denied',
ad_user_data: 'denied',
ad_personalization: 'denied'
});
closeModal();
});
document.getElementById('ks-accept-all-2').addEventListener('click', () => {
window.ksApplyConsent({
analytics_storage: 'granted',
ad_storage: 'granted',
ad_user_data: 'granted',
ad_personalization: 'granted'
});
closeModal();
});
// Valgfritt: eksponer for lenker/meny
window.openCookieSettings = openModal;
})();
</script>
{{page.customBodyEnd}}
</body>
</html>
{{page.componentPageEnd}}
{{page.customPageEnd}}
I see you have a lot of other custom code in the template, I’m pretty sure this is going to be the issue…
Make a copy of your template and keep it safe somewhere, then use the “Revert to Default” button the Template window, click “Done”. And then “Re-Publish all files”.
I’ve been doing a test here and if I include your custom site template I get layout issues, so basically, it’s something in your custom code that is cause the issues. i.e. This is not a bug in the CMS.
UPDATE & Solution! So after spending considerable time on your issue, I’ve narrowed it down to the fact you have included the following code in your Template twice.
If you remove the second set of page. tags and re-upload all files your online CMS should be looking and working correctly.
Please be carful when editing template code (or any code) as it can cause untold issues on your site. A good way to check things is to paste it into an LLM and ask it to look for errors.
Happy Weaving ![]()
Thank you so much for excellent support
This solved the problem ![]()




