2016-10-26 3 views
1

Ich habe eine Website, auf der ich versuche, die Registerkarte "Kontakt" in der unteren rechten Ecke hinzuzufügen. Here is a fiddle von meinem Mock-up. Die rosafarbene Kontaktlasche befindet sich über der Bildlaufleiste. Ich möchte, dass es nur auf der linken Seite der Bildlaufleiste ist.Verhindern, dass fixierte Elemente überlappende Bildlaufleisten enthalten

Ich benutze position:fixed, um die Registerkarte in der unteren rechten, aber es überlappt die Bildlaufleiste. Ich könnte die right:0 zu etwas anderem ändern, aber mein Verständnis ist, dass die Breite der Bildlaufleisten in verschiedenen Browsern variiert, so dass ich nicht weiß, welchen Wert zu wählen.

Ich habe gegoogelt und so viele verwirrende und verworrene Antworten gefunden, aber keiner scheint tatsächlich zu adressieren, was ich versuche zu lösen.

Wie kann ich ein zu fixierendes Element positionieren und die Bildlaufleiste nicht überlappen?

+1

Ganz ehrlich, Ihre Seite ist alles aus dem Gleichgewicht geraten. Wenn Sie mit der rechten Maustaste> Element prüfen und den Mauszeiger über Ihren Körper bewegen, werden Sie feststellen, dass er eine Höhe von ** 0 ** hat. Das ist nie eine gute Sache - fast jedes Element Ihrer Seite ist out-of-Flow. Ich nehme an, Ihr spezifisches Problem ist wegen der 'position: absolute;' auf Ihrem '# workspace'. Versuchen Sie, es zu entfernen und von dort zu gehen.Siehe [hier] (https://jsfiddle.net/mx1vxed2/10/). – Santi

+0

Ich denke, Ihr Verständnis ist korrekt - jeder Browser Scrollbars etwas anders, und darüber hinaus könnte Sie eine Erweiterung ändern, wie die Bildlaufleisten aussehen/verhalten und ändern Sie Ihre Erwartungen für das Verhalten dieses Browsers. Wie streng ist Ihre Anforderung, dass sie bündig sein soll? Vielleicht ist ein einfacher Designwechsel besser als der Umgang mit den Nuancen? – chazsolo

+0

Wir haben bereits einige Inhalte auf der linken Seite und wir können wahrscheinlich das Problem visuell entwerfen. Aber ich hatte nur gehofft, dass es ein offensichtliches war, "Oh, du tust das ..." Das Problem ist der Text und all das Zeug, das es zu füllen gilt, wenn es eine Bildlaufleiste gibt. Warum gibt es keine Möglichkeit, Elemente zu positionieren, die auch über die Bildlaufleiste "wissen"? – Rothrock

Antwort

0

Wenn Sie die Bildlaufleiste unter der Registerkarte möchten, können Sie verwenden:

z-index : 'number value'; 

Hier ist eine aktualisierte Version Ihrer Geige: Fiddle

Ist das, was Sie suchen? Oder versuchen Sie, das Element vollständig von der Bildlaufleiste weg zu bewegen, sodass es von der Seite der Seite schwebt? Oder reagiert auf die Bildlaufleiste "lebendig werden"? Es wäre einfacher, eine Designänderung auf der linken Seite vorzunehmen, als mit den Nuancen der dynamischen Größen der Bildlaufleiste umzugehen, wie es @chazsolo erwähnt.

+0

Ich glaube nicht, dass du deine Geige gegabelt hast, genauso wie OPs. Ich denke auch, dass der Z-Index keine wahre Lösung ist, da es eher so aussieht, als ob OP es wünscht, gegen die linke Seite der Bildlaufleiste zu fluchten. – Santi

+0

Nein ich gegabelt, der Link funktioniert für mich der einzige Unterschied ist der Z-Index auf Zeile 58 Ich habe nicht viel geändert. Aber Sie haben recht, es würde in diesem Sinne nicht funktionieren. Ich werde noch etwas graben, wenn OP das will. – Phil

+0

Sie haben Recht, ich hatte den Link verwechselt, um der gleiche zu sein. Es tut uns leid! – Santi

0

können Sie die Bildlaufleiste verstecken mit:

 

    ::-webkit-scrollbar { 
    display: none; 
    } 

Auf diese Weise Menschen bewegen kann immer noch, aber das ist noch nicht sehr benutzerfreundlich und funktioniert nur auf Webkit-Browsern. Ich denke, was Sie anstreben, ist ein wenig verlorener Kampf; Ich würde es bündig gegen den Boden legen und ihm den gleichen rechten Rand wie den Rest des Inhalts auf der Seite geben, dann müssen Sie sich nicht damit herumschlagen und es würde immer noch gut aussehen.

Browser wie Safari verstecken vollständig die Bildlaufleiste, wenn Sie aktiv Scrollen sind, so, wenn Sie es für jeden Browser einstellen wollen ... ja nein danke :)

+0

Carl du hast da etwas gesagt "... gib ihm den gleichen rechten Rand wie der Rest des Inhalts ..." Ich habe dem Rest des Inhalts keine besondere Art gegeben der Marge. Wenn eine Bildlaufleiste vorhanden ist, wird der Rest des Inhalts verschoben. Wenn nicht, bewegt es sich in die andere Richtung. Ich suche nach einer Möglichkeit, Inhalte zu positionieren, die es auch wissen! – Rothrock

+0

Ich bezog mich mehr auf irgendeinen tatsächlichen Inhalt wie Text oder Bilder, die normalerweise etwas Luftraum rechts und links von einem Dokument/Layout haben. Fixierte Positionierung ist nur ein großer Schmerz, wenn Sie in die Details wie diese geraten. Abgesehen von dem Ansichtsfenster ist nichts um ihn herum bekannt. Sie könnten viel Zeit darauf verwenden, basierend auf der Browsererkennung ein paar Pixel zu optimieren, aber mir fällt kein anderer Ansatz ein, und dieser Ansatz wird zwangsläufig Probleme verursachen, sobald der nächste Browser beschließt, das Aussehen seiner Bildlaufleisten zu ändern. – carl

1

Während ich in den Kommentaren darüber erwähnt ich würde wieder denken Ihre Seitenstruktur vorschlagen, glaube ich, die „schnelle Lösung“ Sie sind nach its:

1. entfernen position: absolute; von #workspace

2. ändern.210-margin-top: 30px; auf #workspace

3.e Geben Sie Ihr #content-header ein z-index höher als den Rest (2 zum Beispiel)

#content-header { 
    ... 
    z-index: 2; 
} 

#workspace { 
    //top: 30px;   -- REMOVE THIS 
    //position: absolute; -- REMOVE THIS 
    margin-top: 30px; 
} 

JSFiddle

+0

Die Struktur des Hauptarbeitsbereichs und alles kommt von unserem SharePoint und wir können das nicht nachbearbeiten. Du hast recht, wenn es ganz von mir wäre, das zu kontrollieren, wäre das nicht so, wie es war. Ich hoffte nur, dass es eine offensichtliche Lösung oder Eigenschaft gab, die mir fehlte und die in dieser Situation helfen könnte. Die Wörter in diesem Container wissen, wie man sie umschließt und nicht unter (oder über die Bildlaufleiste) geht, so dass ich nur gehofft hatte, dass es etwas gibt, mit dem ich auch die Registerkarte positionieren könnte. – Rothrock

Verwandte Themen