Antworten auf deine Fragen:
Neues Thema erstellen

Responsive Navigation (fixed-nav)

sindyho0374

Nicht mehr ganz neu hier

Wie gesagt ich möchte die Navigation für die Desktopansicht bzw. für Ansichten ab ca. 800px horizontal zentrieren.
Der CSS Code ist ziemlich lang und meiner meiner Meinung nach aus ziemlich unübersichtlich. Deshalb habe ich ja den Link eingefügt das ihr euch direkt da mal ein Bild davon machen könnt.
 

sindyho0374

Nicht mehr ganz neu hier

Also hier mal der HTML-Code:

HTML:
    <header>
      <nav class="nav-collapse">
          <ul>
          <li class="active"><a href="#home" data-scroll>Startseite</a></li>
          <li><a href="#about" data-scroll>Über uns</a></li>
          <li><a href="#services" data-scroll>Leistungen</a></li>
          <li><a href="#muster" data-scroll>Muster</a></li>
          </ul>
      </nav>
    </header>

und hier die CSS Klasse:

Code:
@media screen and (min-width: 40em) {
  .nav-collapse {
    float: right;
    width: auto;
  }
}

Das möchte ich wie gesagt horizontal zentrieren und komme da einfach nicht weiter
 

owieortho

Aktives Mitglied

Code:
 a      {
        font-family: Verdana;
        text-decoration: none;
        color: #ffffff;
        } /* Es soll ja ein bischen aussehen... */
nav  {
        background-color: #ff0000; /* ditto */
        margin-top: -8px; /* ditto */
        margin-left: -8px; /* ditto */
        margin-right: -8px; /* ditto */
        }
ul     {
        text-align: center;  /* das zentriert die Liste */
        list-style: none;  /* keine Aufzählungszeichen */
        margin: 0 auto;  /* Optik */
        padding: 0;  /* Optik */
        }
li      {
        display: inline;  /* li-tags werden inline anstatt block angezeigt */
        border-left: 1px solid #ffffff;  /* Optik */
        padding: 15px;  /* Optik */
        margin: auto;  /* Optik */
        }
.nav-collapse {
        width: auto;
        }
Enige der Anweisungen werden sicherlich schon in den CSS-Dateien vorhanden sein. Am besten prüfst Du das mit den Entwicklertools in Firefox nach. Du musst sicherlich in den ul- und li-Selektoreigenschaften wie gezeigt nachbessern, und das float: right aus dem class-Attribut löschen.
O.
 

Gegenstrom

Aktives Mitglied

Wenn ich mir das Beispiel anschaue, dann meinst du: <div class="nav-collapse"> soll sich im <header> zentrieren. Wobei sich verlinktes Beispiel von gezeigtem Quelltext in Aufbau sowie Funktionalität unterscheidet.
Der ganze Spaß setzt auf Bootstrap + Javsscript auf.

Ganz wichtig, man braucht den vollständigen Quelltext. Bitte nichts weglassen. Sonst bringen die Lösungsansätze gar nichts.
Weil dein Quelltext wird bei mobiler Auflösung keine Navigation mehr haben, im Gegensatz zu deinem verlinktem Beispiel. Logo/Brand sind ebenfalls nicht in deinem Quelltext vorhanden.
Kann mir nicht so ganz vorstellen dass du deine Navigationsleiste komplett ohne Brand aufbaust und die mobile Nutzung vernachlässigen möchtest? Würde etwas trocken aussehen nur die Navigationselemente in einer fixed Nav zu haben?

Es gäbe einige Ansätze, aber dazu benötigt man deine Vorgaben/Lastenheft + kompletten Quelltext, sonst macht es wenig Sinn.
 

sindyho0374

Nicht mehr ganz neu hier

Es gäbe einige Ansätze, aber dazu benötigt man deine Vorgaben/Lastenheft + kompletten Quelltext, sonst macht es wenig Sinn.

Da gebe ich dir natürlich Recht.
Mir wäre es am liebsten wenn ich nicht die Klasse
Code:
.nav-collapse
zentrieren muss sondern nur die ungeordnete Liste (<ul>) denn die
Code:
.nav-collapse
ist ja bei kleinen Displays in der Breite sowieso auf 100% gesetzt.
 

sindyho0374

Nicht mehr ganz neu hier

Hier mal der Code:
HTML:
<!DOCTYPE html>
<html lang="de">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Titel</title>
        <link rel="stylesheet" href="css/styles.css">
    <!--[if lt IE 9]>
      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
      <link rel="stylesheet" href="css/ie.css">
    <![endif]-->
    <script src="js/responsive-nav.js"></script>
  </head>
  <body>
    <header>
      <nav class="nav-collapse">
          <ul>
          <img class="logo" src("images/small.png")>
          <li class="active"><a href="#home" data-scroll>Startseite</a></li>
          <li><a href="#about" data-scroll>Über uns</a></li>
          <li><a href="#services" data-scroll>Leistungen</a></li>
          <li><a href="#muster" data-scroll>Muster</a></li>
          </ul>
      </nav>
    </header>

    <section id="home">
      <h1>Startseite</h1>

    </section>

    <section id="about">
      <h1>About</h1>
    </section>

    <section id="projects">
      <h1>Projects</h1>
    </section>

    <section id="services">
      <h1>Blog</h1>
    </section>
     
    <section id="muster">
      <h1>Geschnetz</h1>
    </section>

    <script src="js/fastclick.js"></script>
    <script src="js/scroll.js"></script>
    <script src="js/fixed-responsive-nav.js"></script>
  </body>
</html>

und hier die CSS:

Code:
/* =============================================
*
*   FIXED RESPONSIVE NAV
*
*   (c) 2014 @adtileHQ
*   http://www.adtile.me
*   http://twitter.com/adtilehq
*
*   Free to use under the MIT License.
*
* ============================================= */

body, div,
h1, h2, h3, h4, h5, h6,
p, blockquote, pre, dl, dt, dd, ol, ul, li, hr,
fieldset, form, label, legend, th, td,
article, aside, figure, footer, header, hgroup, menu, nav, section,
summary, hgroup {
  margin: 0;
  padding: 0;
  border: 0;
}

a:active,
a:hover {
  outline: 0;
}

@-webkit-viewport { width: device-width; }
@-moz-viewport { width: device-width; }
@-ms-viewport { width: device-width; }
@-o-viewport { width: device-width; }
@viewport { width: device-width; }


/* ------------------------------------------
  RESPONSIVE NAV STYLES
--------------------------------------------- */

.nav-collapse ul {
  margin: 0;
  padding: 0;
  width: 100%;
  display: block;
  list-style: none;
}

.nav-collapse li {
  width: 100%;
  display: block;
}

.js .nav-collapse {
  clip: rect(0 0 0 0);
  max-height: 0;
  position: absolute;
  display: block;
  overflow: hidden;
  zoom: 1;
}

.nav-collapse.opened {
  max-height: 9999px;
}

.disable-pointer-events {
  pointer-events: none !important;
}

.nav-toggle {
  -webkit-tap-highlight-color: rgba(0,0,0,0);
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  -o-user-select: none;
  user-select: none;
}

@media screen and (min-width: 40em) {
  .js .nav-collapse {
    position: relative;
  }
  .js .nav-collapse.closed {
    max-height: none;
  }
  .nav-toggle {
    display: none;
  }
}


/* ------------------------------------------
  DEMO STYLES
--------------------------------------------- */

body {
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  text-size-adjust: 100%;
  color: #37302a;
  background: #fff;
  font: normal 100%/1.4 sans-serif;
}

section {
  border-bottom: 1px solid #999;
  text-align: center;
  padding: 100px 0 0;
  height: 800px;
  width: 100%;
}

h1 {
  margin-bottom: .5em;
}

p {
  width: 90%;
  margin: 0 auto;
}


/* ------------------------------------------
  FIXED HEADER
--------------------------------------------- */

header {
  background: #f4421a;
  position: fixed;
  z-index: 3;
  width: 100%;
  left: 0;
  top: 0;
}

.logo {
  -webkit-tap-highlight-color: rgba(0,0,0,0);
  text-decoration: none;
  font-weight: bold;
  line-height: 55px;
  padding: 0 20px;
  color: #fff;
  float: left;
}


/* ------------------------------------------
  MASK
--------------------------------------------- */

.mask {
  -webkit-transition: opacity 300ms;
  -moz-transition: opacity 300ms;
  transition: opacity 300ms;
  background: rgba(0,0,0, .5);
  visibility: hidden;
  position: fixed;
  opacity: 0;
  z-index: 2;
  bottom: 0;
  right: 0;
  left: 0;
  top: 0;
}

.android .mask {
  -webkit-transition: none;
  transition: none;
}

.js-nav-active .mask {
  visibility: visible;
  opacity: 1;
}

@media screen and (min-width: 40em) {
  .mask {
    display: none !important;
    opacity: 0 !important;
  }
}


/* ------------------------------------------
  NAVIGATION STYLES
--------------------------------------------- */

.fixed {
  position: fixed;
  width: 100%;
  left: 0;
  top: 0;
}

.nav-collapse,
.nav-collapse * {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.nav-collapse,
.nav-collapse ul {
  list-style: none;
  width: 100%;
  float: left;
}

@media screen and (min-width: 40em) {
  .nav-collapse {
    float: right;
    width: auto;
  }
}

.nav-collapse li {
  float: left;
  width: 100%;
}

@media screen and (min-width: 40em) {
  .nav-collapse li {
    width: auto;
  }
}

.nav-collapse a {
  -webkit-tap-highlight-color: rgba(0,0,0,0);
  border-top: 1px solid white;
  text-decoration: none;
  background: #f4421a;
  padding: 0.7em 1em;
  color: #fff;
  width: 100%;
  float: left;
}

.nav-collapse a:active,
.nav-collapse .active a {
  background: #b73214;
}

@media screen and (min-width: 40em) {
  .nav-collapse a {
    border-left: 1px solid white;
    padding: 1.02em 2em;
    text-align: center;
    border-top: 0;
    float: left;
    margin: 0;
  }
}

.nav-collapse ul ul a {
  background: #ca3716;
  padding-left: 2em;
}

@media screen and (min-width: 40em) {
  .nav-collapse ul ul a {
    display: none;
  }
}


/* ------------------------------------------
  NAV TOGGLE STYLES
--------------------------------------------- */

@font-face {
  font-family: "responsivenav";
  src:url("../icons/responsivenav.eot");
  src:url("../icons/responsivenav.eot?#iefix") format("embedded-opentype"),
    url("../icons/responsivenav.ttf") format("truetype"),
    url("../icons/responsivenav.woff") format("woff"),
    url("../icons/responsivenav.svg#responsivenav") format("svg");
  font-weight: normal;
  font-style: normal;
}

.nav-toggle {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-decoration: none;
  text-indent: -300px;
  position: relative;
  overflow: hidden;
  width: 60px;
  height: 55px;
  float: right;
}

.nav-toggle:before {
  color: #fff; /* Edit this to change the icon color */
  font: normal 28px/55px "responsivenav"; /* Edit font-size (28px) to change the icon size */
  text-transform: none;
  text-align: center;
  position: absolute;
  content: "\2261"; /* Hamburger icon */
  text-indent: 0;
  speak: none;
  width: 100%;
  left: 0;
  top: 0;
}

.nav-toggle.active:before {
  font-size: 24px;
  content: "\78"; /* Close icon */
}
 

Gegenstrom

Aktives Mitglied

Mir wäre es am liebsten wenn ich nicht die Klasse
Code:
.nav-collapse
zentrieren muss sondern nur die ungeordnete Liste (<ul>) denn die
Code:
.nav-collapse
ist ja bei kleinen Displays in der Breite sowieso auf 100% gesetzt.
Die 100% werden bei Desktop negiert und sind somit egal. .nav-collapse ist schneller zu zentrieren als die ul. Rein vom Aufbau und deinem CSS-Gefängnis. Nur weil du etwas möchtest muss es nicht der sinnvollste Weg sein. Zumal es nur ein Szenario gibt welches ich mir vorstellen kann wo es Sinn machen würde. Aber rein von deinem HTML-Aufbau spricht alles dagegen. Also kurz gesagt: die 100% sind kein ersichtliches/r Argument oder Grund.
Hier mal der Code: ...
Du bietest gerade die Funktionalität deiner mobilen Navigation nicht mit an, wenn ich es richte sehe! Dir würde der "nav-toggle"-Button fehlen.
HTML:
<a href="#" class="nav-toggle active" aria-hidden="true">Menu</a>
In der mobilen Darstellung ist die Navigation immer ausgeklappt. Also bei mir, kann bei dir auch so sein dass du gar keine Navigation hast? :(
Macht schon Sinn die Navigationspunkte zu verstecken, da sie sonst ~240px der Höhe des Screens verdecken.

Ich würde das Logo nicht lose in den ul-tag schmeißen. Semantik und so.
Außer du legst dein img-tag noch in ein Listenelement + eventuell a-tag, dann kann es in der Liste bleiben und du kannst dir eventuell dein Startseite-Link sparen. Wäre dennoch viel zu umständlich, aber da kenne ich deine Vorgaben/Vorstellungen nicht. Würde aber dennoch davon abraten.

Variante 1
HTML:
<header>
  <img class="logo" src="https://www.psd-tutorials.de/forum/styles/default/xenforo/avatars/avatar_female_m.png" height="55">
  <a href="#" class="nav-toggle" aria-hidden="false">Menu</a>
  <nav class="nav-collapse">
    <ul>
      <li class="active"><a href="#home" data-scroll>Startseite</a></li>
      <li><a href="#about" data-scroll>Über uns</a></li>
      <li><a href="#services" data-scroll>Leistungen</a></li>
      <li><a href="#muster" data-scroll>Muster</a></li>
    </ul>
  </nav>
</header>

Variante 2
HTML:
<header>
  <nav class="nav-collapse">
    <ul>
      <li class="active"><a href="#home" data-scroll><img class="logo" src="https://www.psd-tutorials.de/forum/styles/default/xenforo/avatars/avatar_female_m.png" height="55"></a></li>
      <li><a href="#about" data-scroll>Über uns</a></li>
      <li><a href="#services" data-scroll>Leistungen</a></li>
      <li><a href="#muster" data-scroll>Muster</a></li>
    </ul>
  </nav>
</header>
Variante 3
HTML:
<header>
  <nav class="nav-collapse">
    <ul>
      <li><img class="logo" src="https://www.psd-tutorials.de/forum/styles/default/xenforo/avatars/avatar_female_m.png" height="55"></li>
      <li class="active"><a href="#home" data-scroll>Startseite</a></li>
      <li><a href="#about" data-scroll>Über uns</a></li>
      <li><a href="#services" data-scroll>Leistungen</a></li>
      <li><a href="#muster" data-scroll>Muster</a></li>
    </ul>
  </nav>
</header>
Ich würde zur ersten Variante tendieren da du so in der mobilen Darstellung das Logo außerhalb der Liste hättest und die Funktionalität der mobilen Navigation nutzen könntest.

Lösung für Variante 1
Code:
@media screen and (min-width: 40em) {
  header  {
    text-align: center; /*hinzugefügt*/
  }
}
@media screen and (min-width: 40em) {
  .logo {
    float: none; /*hinzugefügt*/
    vertical-align: middle; /*hinzugefügt*/
  }
}
@media screen and (min-width: 40em) {
  .nav-collapse {
    display: inline-block; /*hinzugefügt*/
    float: none; /*right, geänderter Wert*/
    width: auto;
    vertical-align: middle; /*hinzugefügt*/
  }
}
Für Variante 2+3 kannst du identisch vorgehen, und lässt die @media-query-Anweisung für .logo weg.

Machst du eine Ausbildung zum Mediengestalter oder studierst du Medieninformatik oder dergleichen bzw. möchtest du später gerne im Bereich Websdesign tätig sein?
Ich mag dir noch etwas mit auf den Weg geben. Bitte setz dich ein wenig mit CSS auseinander. Textfluss, Positionierung, Anzeige und Media Queries. Man sollte verstehen wie was funktioniert, und wie etwas aufgebaut ist. Manchmal hilft es durchaus wenn man Navigationen selber aufbaut ohne auf ein bestehendes Projekt/Codesnippet oder Boilerplate zurückzugreifen, sondern es nach und nach mit der Funktionalität zu "füllen". Auch das Zusammenspiel zwischen HTML und CSS sollte thematisiert werden(Vererbung, CSS Selektoren). Du noch viel zu lernen haben junger Padawan. Ohne es böse zu meinen.
So verstehst du auch schneller und leichter wie man CSS liest und schreibt, etc. Falls das in deinem Interesse ist.
Zumal du schonmal eine solche Frage gestellt hast und dort die Antwort auf deine hier gestellte Frage zu finden ist. Das sagt mir du lernst nicht aus den Antworten? :(

Lösungen sind "Quick and Dirty". Sollte alles funktionieren.
 
Zuletzt bearbeitet:

sindyho0374

Nicht mehr ganz neu hier

Machst du eine Ausbildung zum Mediengestalter oder studierst du Medieninformatik oder dergleichen bzw. möchtest du später gerne im Bereich Websdesign tätig sein?

Hallo erstmal und danke für deine Hilfe.
Und nun zu deiner Frage. Nein ich mach keine Ausbildung und ich studiere auch nicht. Ich mache das rein hobbymäßig weil es mich interessiert.
Für deinen Rat bin ich dir sehr dankbar denn ich habe gemerkt das es schon alles sehr komplex ist wenn man eine gute Website programmieren will. Ich habe mir deshalb gleich ein Buch bei Amazon bestellt über HTML5 und CSS3.
Kostet zwar 44,00 EUR aber ich denke damit komme ich erstmal klar und kann mich schrittweise durcharbeiten oder bzw. reinlesen.

LG
 

Gegenstrom

Aktives Mitglied

Hallo erstmal und danke für deine Hilfe.
Und nun zu deiner Frage. Nein ich mach keine Ausbildung und ich studiere auch nicht. Ich mache das rein hobbymäßig weil es mich interessiert.
Für deinen Rat bin ich dir sehr dankbar denn ich habe gemerkt das es schon alles sehr komplex ist wenn man eine gute Website programmieren will. Ich habe mir deshalb gleich ein Buch bei Amazon bestellt über HTML5 und CSS3.
Kostet zwar 44,00 EUR aber ich denke damit komme ich erstmal klar und kann mich schrittweise durcharbeiten oder bzw. reinlesen.

LG
Genau aus diesem Grund hab ich gefragt.
Dachte mir schon ähnliches, da es eigentlich eher einfache Fragen waren die du gestellt hast.
Du musst dir kein Buch dazu bestellen, es würde auch sehr vieles über selfHTML oder w3schools + diverse Blogs/Sites(https://blog.kulturbanause.de/, https://www.mediaevent.de/, https://css-tricks.com/) oder Google Suchanfragen(siehe oberen Beitrag + diverse Probleme die dir über die Zeit begegnen können) gehen. Schaust dir Tutorials an. Baust dir Seiten von 0 auf. Die müssen nichtmal groß aussehen, sondern dem Zweck dienen. Üben und verstehen. Dann traust dich an Boilerplates/Frameworks/Templates heran. etc.

HTML und CSS sind an sich nicht schwer(diese beiden sind übrigens keine Programmiersprachen), schwer wirds bei Programmierung(Javascript, PHP, MySQL, whatever).
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
118.611
Beiträge
1.538.341
Mitglieder
67.524
Neuestes Mitglied
BSKGA
Oben