Top Navigation
The global top navigation is ImmobilienScout24's central navigation hub. It links to all of the most relevant product and content pages
and provides access to the user's account area.
The header configuration is centrally managed within the CMS ,
so if you wish to use the top navigation in your pages, you should include it by way of a CMS content snippet.
(For more information on how to do that, please refer to the Wiki or bribe your CMS team with shiny things.)
See the Change Log to find out what's changed from previous versions.
Complete Sample Markup
CSS and JS Dependencies
Brand Header
Navigation Frame
Navigation Levels
Tab Navigation
Active Tabs
Layer Sizes
Layer Alignment
Self-aligned Layers
Account Tab
Account Tab Structure
Reduced Account Tab
Log-in Status
JavaScript
“Powered by” Logo
Complete Sample Markup
Complete example of a top navigation
<div class="corporate-powered-by-container">
<header class="page-header page-header--white page-header--white--composite" role="banner">
<div class="content-wrapper vertical-center-container">
<a href="index.html" title="ImmobilienScout24" aria-label="ImmobilienScout24" class="page-header__logo vertical-center">
<img src="../../img/logo/immobilienscout24.svg" alt="ImmobilienScout24"
onerror="this.src='../../img/logo/immobilienscout24.png';this.onerror=null;" />
</a><span class="page-header__brand vertical-center">
Der Marktführer:<br />
Die Nr. 1 rund um Immobilien
</span>
</div>
</header>
<nav class="topnavigation" role="navigation">
<div class="content-wrapper">
<a href="#" class="topnavigation__overlay-trigger--account vertical-center-container">
<div class="topnavigation__sso-login__user-avatar">
<img alt="Placeholder" src="../img/topnavigation/log-in/avatar_placeholder_74x74.png" />
</div><!-- this comment is here to eat up the white space between two inline-block elements
--><span class="topnavigation__sso-login__label-text-wrapper vertical-center">
<span class="sso-login__user-name block font-ellipsis">Anmelden</span>
<span class="block">Mein Konto</span>
</span>
</a>
<div class="topnavigation__overlay--account">
<ul class="topnavigation__level--1 topnavigation__hover-tabs topnavigation__hover-tabs--small-layers topnavigation__slide-in--show-level-2 topnavigation__sso-login sso-login">
<li>
<a href="#" class="topnavigation__level--1__label topnavigation__hover-tabs__label topnavigation__hover-tabs__label--reduced topnavigation__overlay--account__hide">
<div class="topnavigation__sso-login__user-avatar" data-cms-qa="is24-login-avatar">
<!-- user image goes here -->
</div><!-- this comment is here to eat up the white space between two inline-block elements
--><span class="topnavigation__sso-login__label-text-wrapper">
<span class="topnavigation__sso-login__welcome-message topnavigation__hover-tabs__label--reduced__hide font-ellipsis">
<span class="sso-login__user-name">
<span class="sso-login__user-name">Anmelden</span>
</span>
</span>
<span class="block">
<span class="topnavigation__hover-tabs__label--reduced__hide">Mein Konto</span>
<span class="topnavigation__sso-login__tab-decorator"></span>
</span>
</span>
</a>
<div class="topnavigation__level--2 topnavigation__hover-layer topnavigation__hover-layer--right-aligned">
<div class="topnavigation__hover-layer__navigation-wrapper">
<ul class="topnavigation__sso-login__link-list--logged-out list-spacing padding-bottom-none" data-cms-qa="is24-cms-loginbox-logged-out">
<li class="border-bottom padding-bottom">
Persönliche Services nutzen und schneller ans Ziel kommen.
<a href="#" class="margin-vertical-s button-primary button-orange one-whole" id="link_loginLinkInternal">Jetzt anmelden</a>
Neu hier?
<a href="#" class="sso-login-link" id="link_registerLinkInternal">Jetzt registrieren</a>
</li>
</ul>
<ul class="topnavigation__sso-login__link-list icon-arrow list-spacing">
<li>
<a href="#" class="topnavigation-overlay-touch-area" id="link_loginStartLink">Übersicht</a>
</li>
<li>
<a href="#" class="topnavigation-overlay-touch-area" id="link_loginShortlistLink">Merkzettel</a>
</li>
<li>
<a href="#" class="topnavigation-overlay-touch-area">Gespeicherte Suchen</a>
</li>
<li>
<a href="#" class="topnavigation-overlay-touch-area">Persönliches Profil</a>
</li>
<li>
<a href="#" class="topnavigation-overlay-touch-area">Immobilienanzeigen</a>
</li>
<li>
<a href="#" class="topnavigation-overlay-touch-area">EigentümerPlus</a>
</li>
</ul>
<ul class="topnavigation__sso-login__link-list--logged-in list-spacing padding-top-none" data-cms-qa="is24-cms-loginbox-logged-in">
<li class="border-top padding-top align-center">
<a href="#" class="sso-login-link" id="link_logoutLinkInternal">Abmelden</a>
</li>
</ul>
</div>
</div>
</li>
</ul><!-- .topnavigation__sso-login -->
</div>
<a href="#" class="topnavigation__overlay-trigger--menu" aria-label="Navigation anzeigen/verstecken">
<div class="topnavigation__burger"></div>
</a>
<div class="topnavigation__overlay--menu">
<div class="content-wrapper content-wrapper--topnavigation-overlay">
<img class="topnavigation__overlay--menu__logo" alt="ImmobilienScout24" src="../../img/logo/immobilienscout24.svg"
onerror="this.src='../../img/logo/immobilienscout24.png';this.onerror=null;" />
</div>
<div class="topnavigation__overlay--menu__close"></div>
<ul class="topnavigation__level--1 topnavigation__hover-tabs topnavigation__hover-tabs--small-layers topnavigation__hover-tabs--self-aligned">
<li>
<span class="topnavigation__level--1__label topnavigation__hover-tabs__label">Wohnen</span>
<div class="topnavigation__level--2 topnavigation__hover-layer">
<div class="topnavigation__hover-layer__navigation-wrapper">
<div class="topnavigation__level--3 topnavigation__hover-layer__link-block">
<ul class="list-spacing icon-arrow">
<li><a href="#">Mietwohnungen</a></li>
<li><a href="#">Eigentumswohnungen</a></li>
<li><a href="#">Häuser mieten</a></li>
<li><a href="#">Häuser kaufen</a></li>
<li><a href="#">SCHUFA Bonitätscheck</a></li>
<li><a href="#">Veröffentlichte Profile</a></li>
<li><a href="#">Smart Home</a></li>
<li><a href="#">Hilfe zur Wohnungssuche</a></li>
<li><a href="#">Bundesländer entdecken</a></li>
</ul>
</div>
</div>
</div>
</li>
<li>
<span class="topnavigation__level--1__label topnavigation__hover-tabs__label">Anbieten</span>
<div class="topnavigation__level--2 topnavigation__hover-layer">
<div class="topnavigation__hover-layer__navigation-wrapper">
<div class="topnavigation__level--3 topnavigation__hover-layer__link-block">
<ul class="list-spacing icon-arrow">
<li><a href="#">Anzeige aufgeben</a></li>
<li><a href="#">Nachmieter suchen</a></li>
<li><a href="#">Makler finden</a></li>
<li><a href="#">Für gewerbliche Anbieter</a></li>
<li><a href="#">Tipps für die Vermietung</a></li>
<li><a href="#">Tipps für den Verkauf</a></li>
</ul>
</div>
</div>
</div>
</li>
<li>
<span class="topnavigation__level--1__label topnavigation__hover-tabs__label">Gewerbe</span>
<div class="topnavigation__level--2 topnavigation__hover-layer">
<div class="topnavigation__hover-layer__navigation-wrapper">
<div class="topnavigation__level--3 topnavigation__hover-layer__link-block">
<ul class="list-spacing icon-arrow">
<li><a href="#">Gewerbeimmobilien suchen</a></li>
<li><a href="#">Büro & Praxis</a></li>
<li><a href="#">Einzelhandel</a></li>
<li><a href="#">Hallenflächen</a></li>
<li><a href="#">Gastronomieflächen</a></li>
<li><a href="#">Maklersuche</a></li>
<li><a href="#">Ratgeber</a></li>
</ul>
</div>
</div>
</div>
</li>
<li>
<span class="topnavigation__level--1__label topnavigation__hover-tabs__label">Neubau</span>
<div class="topnavigation__level--2 topnavigation__hover-layer">
<div class="topnavigation__hover-layer__navigation-wrapper">
<div class="topnavigation__level--3 topnavigation__hover-layer__link-block">
<ul class="list-spacing icon-arrow">
<li><a href="#">Neubau kaufen</a></li>
<li><a href="#">Haus bauen</a></li>
<li><a href="#">Fertig- und Massivhausanbieter</a></li>
<li><a href="#">Häuser nach Preisen</a></li>
<li><a href="#">Neubau als Kapitalanlage</a></li>
<li><a href="#">Tipps für den Neubau-Kauf</a></li>
</ul>
</div>
</div>
</div>
</li>
<li>
<span class="topnavigation__level--1__label topnavigation__hover-tabs__label">Markt & Preise</span>
<div class="topnavigation__level--2 topnavigation__hover-layer">
<div class="topnavigation__hover-layer__navigation-wrapper">
<div class="topnavigation__level--3 topnavigation__hover-layer__link-block">
<ul class="list-spacing icon-arrow">
<li><a href="#">Immobilienbewertung</a></li>
<li><a href="#">Immobilienwert berechnen</a></li>
<li><a href="#">Mietpreis prüfen</a></li>
<li><a href="#">Grundstück bewerten</a></li>
<li><a href="#">Sachverständigen beauftragen</a></li>
<li><a href="#">Mietspiegel in Deutschland</a></li>
<li><a href="#">Regionale Miet- und Kaufpreise</a></li>
<li><a href="#">Immobilienmarkt aktuell</a></li>
</ul>
</div>
</div>
</div>
</li>
<li>
<span class="topnavigation__level--1__label topnavigation__hover-tabs__label">Baufinanzierung</span>
<div class="topnavigation__level--2 topnavigation__hover-layer">
<div class="topnavigation__hover-layer__navigation-wrapper">
<div class="topnavigation__level--3 topnavigation__hover-layer__link-block">
<ul class="list-spacing icon-arrow">
<li><a href="#">Zinsvergleich</a></li>
<li><a href="#">Finanzierungsrechner</a></li>
<li><a href="#">Mieten oder Kaufen</a></li>
<li><a href="#">Anschlussfinanzierung</a></li>
<li><a href="#">Wie viel Haus kann ich mir leisten?</a></li>
</ul>
</div>
</div>
</div>
</li>
<li>
<span class="topnavigation__level--1__label topnavigation__hover-tabs__label">Umzug</span>
<div class="topnavigation__level--2 topnavigation__hover-layer">
<div class="topnavigation__hover-layer__navigation-wrapper">
<div class="topnavigation__level--3 topnavigation__hover-layer__link-block">
<ul class="list-spacing icon-arrow">
<li><a href="#">Umzugsunternehmen vergleichen</a></li>
<li><a href="#">Transporter mieten</a></li>
<li><a href="#">Umzugskosten berechnen</a></li>
<li><a href="#">Wohnung kündigen</a></li>
<li><a href="#">Vorlagen & Downloads </a></li>
<li><a href="#">Umzug-Checkliste</a></li>
<li><a href="#">Umzug im Überblick</a></li>
</ul>
</div>
</div>
</div>
</li>
<li>
<span class="topnavigation__level--1__label topnavigation__hover-tabs__label">Eigentümer</span>
<div class="topnavigation__level--2 topnavigation__hover-layer">
<div class="topnavigation__hover-layer__navigation-wrapper">
<div class="topnavigation__level--3 topnavigation__hover-layer__link-block">
<ul class="list-spacing icon-arrow">
<li><a href="#">Aktuelles für Eigentümer</a></li>
<li><a href="#">Meine Immobilienverwaltung</a></li>
<li><a href="#">Energieausweis</a></li>
<li><a href="#">Mietverträge und Mustervorlagen</a></li>
<li><a href="#">Nebenkostenabrechnung</a></li>
<li><a href="#">SCHUFA-VermieterCheck</a></li>
<li><a href="#">Tipps & Checklisten</a></li>
</ul>
</div>
</div>
</div>
</li>
</ul><!-- .topnavigation__level- -1 -->
</div>
</div>
</nav><!-- .topnavigation -->
<script type="text/javascript">
document.addEventListener("DOMContentLoaded", function () {
if (window.IS24 && IS24.core && IS24.core.extensions && IS24.core.extensions.topnavigation) {
IS24.core.extensions.topnavigation.init();
}
});
</script>
<div class="corporate-powered-by">
<div class="content-wrapper align-right">
<a rel="nofollow" target="_blank" href="#">
<img src="../../img/vendor/powered-by-telekom.svg"
alt="Powered by Telekom" class="corporate-powered-by__logo"
onerror="this.src='../../img/vendor/powered-by-telekom.png';this.onerror=null;" />
</a>
</div>
</div>
</div>
CSS and JS Dependencies
The Top Navigation relies on the Core Framework
in an arbitrary version, as well as the additional top navigation CSS and JS included in this package.
Note: If you are using the central CMS header, you won't need to include the core-topnavigation
resources
as they are already delivered as part of the header snippet.
Top Navigation CSS and JS inclusion
<link rel="stylesheet" href="//www.static-immobilienscout24.de/fro/core-topnavigation/1.2.0/css/core-topnavigation.min.css" />
<script src="//www.static-immobilienscout24.de/fro/core-topnavigation/1.2.0/js/core-topnavigation.min.js"></script>
Brand Header
The white section of the top navigation, which includes the brand logo and claim, is a variation of the
Core Framework's standard white header. It introduces the page-header--white--composite
class,
along with a few minor markup changes.
Top navigation brand header
(Note that image URLs will differ in production.)
<header class="page-header page-header--white page-header--white--composite" role="banner">
<div class="content-wrapper vertical-center-container">
<a href="index.html" title="ImmobilienScout24" aria-label="ImmobilienScout24" class="page-header__logo vertical-center">
<img src="../../img/logo/immobilienscout24.svg" alt="ImmobilienScout24"
onerror="this.src='../../img/logo/immobilienscout24.png';this.onerror=null;" />
</a><span class="page-header__brand vertical-center">
Der Marktführer:<br />
Die Nr. 1 rund um Immobilien
</span>
</div>
</header>
Navigation Frame
The top navigation is wrapped in a topnavigation
block, which in turn
contains a content-wrapper
element to get the navigation items
aligned with the left and right margins of any other content sections.
Page structure for top navigation
<nav class="topnavigation">
<div class="content-wrapper"></div>
</nav>
Navigation Levels
Navigation items are grouped into three levels. These levels are displayed differently depending on the navigation state.
Since both the tab navigation (for desktop) and the overlay navigation (for mobile) are based on the same DOM elements, you won't need to maintain two independent navigations.
Tab Navigation
When the tab navigation is active, first-level navigation items are shown as tabs in the orange navigation bar.
Second and third-level items are grouped under their respective tabs and will be shown when the user clicks or taps on a tab.
The tab navigation is composed of three main components:
The tab navigation list (topnavigation__hover-tabs
),
the individual list elements, each with a tab label (topnavigation__hover-tabs__label
),
and the tab layer (topnavigation__hover-layer
).
Top navigation tabs
(Other classes omitted for the sake of simplicity.)
<nav class="topnavigation">
<div class="content-wrapper">
<div class="topnavigation__overlay--menu">
<ul class="topnavigation__hover-tabs">
<li>
<a class="topnavigation__hover-tabs__label" href="#">Wohnen</a>
<div class="topnavigation__hover-layer">
<!-- Layer content -->
</div>
</li>
</ul>
</div>
</div>
</nav>
Active Tabs
Tabs can be highlighted with the active
class to give users a general idea
about their whereabouts.
Active top navigation tab
(Top navigation wrapper left out for the sake of simplicity.)
<ul class="topnavigation__hover-tabs">
<li>
<a class="topnavigation__hover-tabs__label" href="#">Inactive</a>
</li>
<li class="active">
<a class="topnavigation__hover-tabs__label" href="#">Active</a>
</li>
<li>
<a class="topnavigation__hover-tabs__label" href="#">Inactive</a>
</li>
</ul>
Layer Sizes
Top navigation layers come in two sizes: small and large. Large layers will span the whole width of the top navigation,
while small layers are just wide enough for a single link list.
Tab lists opening differently sized layers
(Top navigation wrapper left out for the sake of simplicity.)
<ul class="topnavigation__hover-tabs topnavigation__hover-tabs--small-layers topnavigation__sso-login">
<li>
<span class="topnavigation__level--1__label topnavigation__hover-tabs__label">
A small layer
</span>
<div class="topnavigation__level--2 topnavigation__hover-layer topnavigation__hover-layer--right-aligned">
Nothing much here.
</div>
</li>
</ul>
<ul class="topnavigation__hover-tabs topnavigation__hover-tabs--large-layers">
<li>
<span class="topnavigation__level--1__label topnavigation__hover-tabs__label">
A large layer
</span>
<div class="topnavigation__level--2 topnavigation__hover-layer">
This place for rent. Also, blind text. And some more, just to reach the other end of the container
and force a break.
</div>
</li>
</ul>
A small layer
Nothing much here.
Layer Alignment
Small layers are by default left-aligned. To align a layer to the right edge of the tab, use the
topnavigation__hover-layer--right-aligned
class.
Layers aligned to the left and to the right
(Top navigation wrapper left out for the sake of simplicity.)
<ul class="topnavigation__level--1 topnavigation__hover-tabs topnavigation__hover-tabs--small-layers">
<li>
<span class="topnavigation__level--1__label topnavigation__hover-tabs__label">
Left-aligned
</span>
<div class="topnavigation__level--2 topnavigation__hover-layer">
This layer is left-aligned as per default.
</div>
</li>
<li>
<span class="topnavigation__level--1__label topnavigation__hover-tabs__label">
Right-aligned
</span>
<div class="topnavigation__level--2 topnavigation__hover-layer topnavigation__hover-layer--right-aligned">
This layer is aligned to the right, which comes in handy if there is not enough space on the right to fit the layer.
</div>
</li>
</ul>
Left-aligned
This layer is left-aligned as per default.
Right-aligned
This layer is aligned to the right, which comes in handy if there is not enough space on the right to fit the layer.
Self-aligned Layers
Since the top navigation has flexible dimensions depending on display size, layers may need to be right-aligned
only some of the time.
To have layers aligned on demand, set the topnavigation__hover-tabs--self-aligned
class
on the respective tab list. The required script will be run as part of IS24.core.extensions.topnavigation.init
.
A tab list with self-aligned layers
<ul class="topnavigation__hover-tabs topnavigation__hover-tabs--small-layers topnavigation__hover-tabs--self-aligned">
</ul>
Layer Content
The content of a layer is structured differently depending on the layer's size.
Small layers need only the topnavigation__hover-layer__navigation-wrapper
wrapper element, which takes care of spacing.
Large layers have a slightly more complex structure to allow for multiple link list blocks, teasers, and equally
sized content columns.
Content structure for small and large layers
<nav class="topnavigation">
<div class="content-wrapper">
<ul class="topnavigation__level--1 topnavigation__hover-tabs topnavigation__hover-tabs--small-layers topnavigation__sso-login">
<li>
<span class="topnavigation__level--1__label topnavigation__hover-tabs__label">
A small layer
</span>
<div class="topnavigation__level--2 topnavigation__hover-layer topnavigation__hover-layer--right-aligned">
<div class="topnavigation__hover-layer__navigation-wrapper">
<ul class="icon-arrow list-spacing">
<li> <a href="#">A couple</a></li>
<li> <a href="#">of entries</a></li>
<li> <a href="#">in a single</a></li>
<li> <a href="#">link list</a></li>
</ul>
</div>
</div>
</li>
</ul><!-- .topnavigation__hover-tabs -->
<ul class="topnavigation__level--1 topnavigation__hover-tabs topnavigation__hover-tabs--large-layers">
<li>
<span class="topnavigation__level--1__label topnavigation__hover-tabs__label">
A large layer
</span>
<div class="topnavigation__level--2 topnavigation__hover-layer">
<div class="equal-height one-whole">
<div class="topnavigation__hover-layer__navigation-wrapper equal-height__column three-fourths">
<div class="grid gutter-horizontal-xl gutter-vertical-m">
<div class="grid-item topnavigation__hover-layer__link-block">
<h3><a href="#">There is</a></h3>
<ul class="list-spacing-xs icon-arrow">
<li><a href="#">Ample space here</a></li>
<li><a href="#">To fit</a></li>
</ul>
</div>
<div class="grid-item topnavigation__hover-layer__link-block">
<h3><a href="#">Several</a></h3>
<ul class="list-spacing-xs icon-arrow">
<li><a href="#">Link</a></li>
<li><a href="#">Lists</a></li>
</ul>
</div>
<div class="grid-item topnavigation__hover-layer__link-block">
<h3><a href="#">You can</a></h3>
<ul class="list-spacing-xs icon-arrow">
<li><a href="#">Keep it</a></li>
<li><a href="#">In one line</a></li>
</ul>
</div>
<div class="grid-item topnavigation__hover-layer__link-block">
<h3><a href="#">Or use two</a></h3>
<ul class="list-spacing-xs icon-arrow">
<li><a href="#">If you prefer</a></li>
</ul>
</div>
</div>
</div>
<div class="topnavigation__hover-layer__teaser-wrapper equal-height__column one-fourth">
<div class="topnavigation__hover-layer__teaser">
<div class="padding-vertical-l padding-left-s padding-right-xl">
<h3 class="font-brandorange">Also: Teasers.</h3>
<p class="margin-bottom-xl margin-top-s font-line-l">
Because where would we be if not for teasers?
</p>
<a class="button-primary padding-horizontal-s" href="#">Right?</a>
</div>
</div>
</div>
</div>
</div>
</li>
</ul><!-- .topnavigation__hover-tabs -->
</div><!-- .content-wrapper -->
</nav><!-- .topnavigation -->
A large layer
Also: Teasers.
Because where would we be if not for teasers?
Right?
Account Tab
The account tab layout differs from ordinary tabs. Depending on configuration and log-in status, it may show
a user image and a user name.
Account Tab Structure
The account tab contains a number of additional DOM elements.
A user image (topnavigation__sso-login__user-avatar
)
A welcome message to the logged-in user (topnavigation__sso-login__welcome-message
)
A tab decorator icon (topnavigation__sso-login__tab-decorator
)
Also, the classes sso-login
and sso-login__user-name
serve as handles for the log-in script.
An account tab
(Top navigation wrapper left out for the sake of simplicity.)
<div class="topnavigation__overlay--account">
<ul class="topnavigation__hover-tabs topnavigation__hover-tabs--small-layers topnavigation__sso-login sso-login">
<li>
<a href="#" class="topnavigation__level--1__label topnavigation__hover-tabs__label topnavigation__hover-tabs__label--reduced topnavigation__overlay--account__hide">
<div class="topnavigation__sso-login__user-avatar" data-cms-qa="is24-login-avatar">
<!-- user image goes here -->
</div><!-- this comment is here to eat up the white space between two inline-block elements
--><span class="topnavigation__sso-login__label-text-wrapper">
<span class="topnavigation__sso-login__welcome-message topnavigation__hover-tabs__label--reduced__hide font-ellipsis">
<span class="sso-login__user-name">
<span class="sso-login__user-name">Anmelden</span>
</span>
</span>
<span class="block">
<span class="topnavigation__hover-tabs__label--reduced__hide">Mein Konto</span>
<span class="topnavigation__sso-login__tab-decorator"></span>
</span>
</span>
</a>
<div class="topnavigation__level--2 topnavigation__hover-layer topnavigation__hover-layer--right-aligned">
</div>
</li>
</ul>
</div>
Reduced Account Tab
On small displays, the account tab may be stripped of its label and the user name to save space.
To do so, apply the class topnavigation__hover-tabs__label--reduced
to the label.
A reduced account tab
(Resize the browser window to see the reduced tab.)
(Wrapping elements omitted for the sake of simplicity.)
<div class="topnavigation__overlay--account">
<a href="#" class="topnavigation__level--1__label topnavigation__hover-tabs__label topnavigation__hover-tabs__label--reduced">
<div class="topnavigation__sso-login__user-avatar">
<!-- user image goes here -->
</div><!-- this comment is here to eat up the white space between two inline-block elements
--><span class="topnavigation__sso-login__label-text-wrapper">
<span class="topnavigation__sso-login__welcome-message topnavigation__hover-tabs__label--reduced__hide font-ellipsis">
<span class="sso-login__user-name">Anmelden</span>
</span>
<span class="block">
<span class="topnavigation__hover-tabs__label--reduced__hide">Mein Konto</span>
<span class="topnavigation__sso-login__tab-decorator"></span>
</span>
</span>
</a>
</div>
Log-in Status
The account tab on the right is displayed differently depending on whether or not the user is logged in.
The view is toggled with the sso-login--logged-in
class on the surrounding list element.
Similarly, the sso-login--show-avatar
class determines whether to show or hide the
user avatar or placeholder image.
Login panel in logged-in and logged-out state
(Top navigation wrapper left out for the sake of simplicity.)
<ul class="topnavigation__hover-tabs topnavigation__sso-login sso-login">
<li>
<a href="#" class="topnavigation__level--1__label topnavigation__hover-tabs__label topnavigation__hover-tabs__label--reduced topnavigation__overlay--account__hide">
<div class="topnavigation__sso-login__user-avatar" data-cms-qa="is24-login-avatar">
<!-- user image goes here -->
</div><!-- this comment is here to eat up the white space between two inline-block elements
--><span class="topnavigation__sso-login__label-text-wrapper">
<span class="topnavigation__sso-login__welcome-message topnavigation__hover-tabs__label--reduced__hide font-ellipsis">
<span class="sso-login__user-name">
<span class="sso-login__user-name">Anmelden</span>
</span>
</span>
<span class="block">
<span class="topnavigation__hover-tabs__label--reduced__hide">Mein Konto</span>
<span class="topnavigation__sso-login__tab-decorator"></span>
</span>
</span>
</a>
</li>
</ul>
<ul class="topnavigation__hover-tabs topnavigation__sso-login sso-login sso-login--show-avatar">
<li>
<a href="#" class="topnavigation__level--1__label topnavigation__hover-tabs__label topnavigation__overlay--account__hide">
<div class="topnavigation__sso-login__user-avatar">
<img alt="Placeholder" src="../img/topnavigation/log-in/avatar_placeholder_74x74.png" />
</div><!-- this comment is here to eat up the white space between two inline-block elements
--><span class="topnavigation__sso-login__label-text-wrapper">
<span class="topnavigation__sso-login__welcome-message topnavigation__hover-tabs__label--reduced__hide font-ellipsis">
<span class="sso-login__user-name">Anmelden</span>
</span>
<span class="block">
<span class="topnavigation__hover-tabs__label--reduced__hide">Mein Konto</span>
<span class="topnavigation__sso-login__tab-decorator"></span>
</span>
</span>
</a>
</li>
</ul>
<ul class="topnavigation__hover-tabs topnavigation__sso-login sso-login sso-login--show-avatar sso-login--logged-in">
<li>
<a class="topnavigation__level--1__label topnavigation__hover-tabs__label topnavigation__overlay--account__hide" href="#">
<div class="topnavigation__sso-login__user-avatar">
<img alt="Herzog Frosch von Unkenberg" src="../img/topnavigation/log-in/frog_80x80.jpg" />
</div><!-- this comment is here to eat up the white space between two inline-block elements
--><span class="topnavigation__sso-login__label-text-wrapper">
<span class="topnavigation__sso-login__welcome-message topnavigation__hover-tabs__label--reduced__hide font-ellipsis">
<span class="sso-login__user-name">
<span class="sso-login__user-name">Herzog Frosch von Unkenberg</span>
</span>
</span>
<span class="block">
<span class="topnavigation__hover-tabs__label--reduced__hide">Mein Konto</span>
<span class="topnavigation__sso-login__tab-decorator"></span>
</span>
</span>
</a>
</li>
</ul>
JavaScript
To initialize the top navigation logic (including the slide-in behavior and support for touch interfaces),
call IS24.core.extensions.topnavigation.init
.
Note: If you use the CMS header snippet, this is already taken care of.
if (window.IS24 && IS24.core && IS24.core.extensions && IS24.core.extensions.topnavigation) {
IS24.core.extensions.topnavigation.init();
}
“Powered by” Logo
The powered-by logo in the top right hand corner is absolutely positioned so that it can be placed
low in the document tree.
Place it within a corporate-powered-by-container
element
to give it a proper positioning reference.
Note: You don't need to worry about the wrapper if you get your header markup from the CMS. The snippet brings its own
powered-by wrapper.
<body>
<div class="viewport">
<div class="page-wrapper topnavigation-slide-in-container corporate-powered-by-container">
<!-- header goes here -->
<!--
... other, more relevant content here
-->
<div class="corporate-powered-by">
<div class="content-wrapper align-right">
<a rel="nofollow" target="_blank" href="#">
<img src="../../img/vendor/powered-by-telekom.svg"
alt="Powered by Telekom" class="corporate-powered-by__logo"
onerror="this.src='../../img/vendor/powered-by-telekom.png';this.onerror=null;" />
</a>
</div>
</div>
</div>
</div>
</body>