Bewegliche Elemente hinter transparentem Bild verstecken?

  • Hallo Forum!


    Mein Name ist Jens, ich habe in der Vergangenheit hier und da per HTML einfache Websites "gebaut" (ist schon 20 Jahre her), seither hat sich ja sehr viel getan. Aktuell arbeite ich an einer privaten Seite und möchte diese gerne ansprechend gestalten. Dazu bediene ich mich des Bootstrap 3/4 und ich lerne aktuell viel über CSS.


    Zu meinem Problem: Ich habe mit der Klasse .fixed-top eine Row fixiert und dort meine Navigation plaziert. Diese würde ich gerne per halbtransparente Bilder erstellen (mit Rollover-Wechsel). Das klappt soweit. Jedoch: Wenn ich den Rest des Contents scrolle, überdeckt natürlich dessen Inhalt dann die transparenten Bereiche, was doof aussieht. Ich habe das aktuell so gelöst dass ich die jeweiligen Rolloverbilder nicht transparent sondern in einem gewissen Maße im Hintergrund untergehend gestaltet habe. Das sieht aber bei verschiedenen Viewports dann mitunter auch nicht optimal aus, da das Hintergrundbild auf cover gesetzt ist und das ganze dann nicht mehr optimal passt.

    Gibt es denn eine Möglichkeit, im Bereich der Navigations-Row (100 Px hoch), sozusagen den Rest des Contents einen "Schutzbereich" auf transparent zu schalten, damit die Navigation mit den transparenten Bereichen beim Scrollen trotzdem "leer/frei" bleibt? Man kann ja mit CSS3 so viel machen, vielleicht ist sowas ja auch hinterlegt?


    Ich danke euch herzlichst für Anregungen und Lösungsansätze!


    Viele Grüße!


    Jens

  • Ja, ich sehe, was dein Problem ist. Anscheinend hast Du den Hintergrund so eingerichtet, dass er beim Scrollen fest steht. In dem Fall könntest Du einfach dem Header das selbe Hintergrundbild geben, denn es müsste ja nahtlos anschließen. Kleine Einschränkung: Der letzte Stand meiner Informationen sagt aus, dass die meisten mobilen Geräte aus Performancegründen background-attachment:fixed ignorieren.


    BTW: Cooles Hobby, nur im Moment leider kein klarer Himmel. Bin gespannt, wie es sich in den nächsten Tagen entwickelt.

  • Danke! Ja, Hobby ist zur Zeit echt eine Krankheit, nix zu machen :( Meine Bekannten in den USA können pro Woche viele Stunden belichten, ich schau in die Röhre.


    Ich habe den Header in eine Tabelle eingepackt, die in der .col_lg12 Klasse eingebettet ist. Ich weiss sonst nicht wie ich verhindern soll dass der Content über den gesamten Bildschirm gespreizt wird. Da fehlt mir halt noch das Wissen. Du meintest jetzt also, ich solle z.B. das bg-image der Tabelle gleichsetzen mit dem Hintergrundbild des Bodies? Oder versteh ich da was falsch...?


    Hab wieder einen Screen angehängt, ich gaube so funktioniert das nicht...


    html-seminar.de/woltlab/attachment/2695/


    Für mobile Geräte will ich die Seite eigentlich nicht optimieren, da die allermeisten Leute diese Art Seiten eh am Desktop anschauen und das Bootstrap mit den relativ wenigen Screengrößen flexibel genug ist.


    Danke!


    Jens

  • Ich hab jetzt einfach mal ne Klasse definiert mit Hintergrundbild, funktioniert aber leider auch nicht...



    Das wäre der Code-Schnipsel vom Oberteil... Reicht dir das zum Spielen?

  • Danke, ich habe das in der Zwischenzeit etwas anders annähernd nachgebildet.

    Mit diesem CSS:

    funktioniert es einwandfrei, siehe hier:

    html-seminar.de/woltlab/attachment/2715/


    Unter dem Header verschwindet die Schrift des Hauptinhaltes und der Hintergrund setzt sich ohne Unterbrechung fort.


    Für deinen Fall umgeändert müsste das CSS so aussehen:

    Nachdem ich das so weit geschrieben habe, ist mir eingefallen, dass Du background-size: cover; für body hast. Das könnte das Ganze scheitern lassen. Versuche es erst Mal so. Möglicher Weise müssen wir dann die horizontale Breite auch für body auf 100% setzen und repeat in der Vertikalen zulassen, falls der Hauptinhalt zu hoch wird.

  • So, hab das mal eingebaut, es tut sich nix. Offenbar wird der Style der überhaupt nicht beachtet, ich seh im fluid container rein gar keine änderung, nicht mal ein verzerrtes bild. wahrscheinlich wird da von woanders was vererbt???

  • Hm, müsste man mal live sehen. Irgend wann wirst Du ohnehin Webspace brauchen und für die Entwicklung ist es auch angebracht, so wie jetzt. bplaced.net ist für den Anfang ganz gut und kostenlos.

    Hast Du denn noch mehr CSS? Ich dachte, Du hättest nur das von Bootstrap und das, was Du in #7 gepostet hattest?

  • Mit mix-blend-mode funktioniert es sehr gut, allerdings musste ich etwas tun, was ich nicht so gern tue, nämlich zwei Hilfcontainer einführen:

  • Noch etwas erfreuliches: Ich habe es auf meinem Handy ausprobiert und auch dort funktioniert es, wenn ich

    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 

    im Head einfüge. Hintergrund steht fest ohne background-attachment.

    Samsung-Browser auf Android.

  • PS: Eine Tabelle ist in diesem Fall eher weniger angebracht aber weil Bootstrap nicht so meine Baustelle ist und ich dir keine Alternative angeben kann, lassen wir es erst mal dabei.

    Das stimmt. Tabellen habe ich für Design eigentlich noch nie benutzt. Das hat man früher so gemacht, heute würde ich eher Grid nehmen. Jens_M schau dir doch mal die Navigation von Bootstrap an, ich denke, das ist besser (kannst du ja per CSS noch farblich anpassen, und ist im Gegensatz zu der Tabelle responsive).


    Kurz noch was: der Sinn von Bootstrap sind die Komponenten, die es mit sich bringt. Wenn du alles selbst codest, brauchst auch kein Bootstrap mehr.

    Das:

    Code
    onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('nav-bilder','','grafik/nav-bilder-h.png',1)

    würde ich durch CSS :hover ersetzen, und nicht mit Bildern machen (ist schlecht für Screenreader und responsive Design).

  • Ohje..., da brummt der Schädel...

    Danke erstmal für die Hinweise. Wie geagt, ich bin erst mal wieder beim Lernen und mit 50+ ist das gar nicht mehr so einfach :-/ Ich habe auch schon versucht, den Bildwechsel in der Navigation durch den Effekt fade im verhalten-Menü von Dreamweaver zu steuern, geht aber nicht... Wie müsste denn der Befehl aussehen, um z.B. einen sauberen fade von 500ms beim onMouseOver und Out hinzubekommen? ich habe den Seitenaufbau jetzt modifiziert, um keinen mehr allzu vertikalen Aufbau mehr drin zu haben (scrollen). Wie gesagt, das ist eine einfache Hobbypage die ich einfach etwas aufhübschen möchte, damit es nicht ganz so altbacken aussieht. Die vielen Videos be YouTube die ich sah, überfordern mich, sorry...


    CS!


    Jens

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!