2016-05-10 18 views
1

Ich habe einige Fragen zu Hintergrundbildern, wenn background-attachmentfixed gesetzt ist. Diese sind:Wie funktioniert der Hintergrundanhang behoben?

  1. nehme ich eine Hintergrundbild auf ein div mit einer Breite von 500 Pixel und Höhe 500px mit 1px solid roten Rand. Wenn ich jetzt background-size: 100% 100% gebe. Warum ist die Größe des Hintergrundbildes etwas größer als 500 Pixel? Warum ändert sich die Größe des Hintergrundbilds, wenn ich die Größe des Ansichtsfensters ändere?

  2. Wie lege ich dem Hintergrundbild eine Mindesthöhe fest, damit sich das Hintergrundbild bei einer Größenänderung nicht verkleinert?

+0

Keine dieser Fragen hat nichts mit Hintergrund-Anhang zu tun. Sie sind ungefähr Hintergrundgröße. – BoltClock

+0

@BoltClock Wenn ich 'backgrounder-attachment: fixed' entferne, nimmt das Hintergrundbild keine Breite und Höhe relativ zum Ansichtsfenster an, stattdessen würde 'background-size: 100%' die Breite auf 100% setzen; s container. – user31782

+0

Auch dies sind zwei unabhängige Fragen. Nun, verschiedene Fragen. Sie wären besser in getrennten Fragen. –

Antwort

0
  1. Ihr Bild ist etwas größer als 500px, weil die Grenze als Teil des Bildes betrachtet wird. Ihr Hintergrundbild wird mit dieser Methode 502x502 sein.

  2. Auf Ihrem Hintergrund können Sie eine maximale Breite und maximale Höhe zuweisen, damit das Bild nicht kleiner als eine ausgewählte Anzahl von Pixeln wird.

Warum die Größe des Hintergrundbild ändern, wenn ich ändern Sie die Größe der Ansichtsfenster?

Dies liegt daran, dass Sie die Bildgröße in% einstellen. Das% -Attribut nimmt% seiner Elterngröße an. In unserem Fall ist das übergeordnete Element das Ansichtsfenster (entspricht vh und vw) und ändert die Größe, wenn Sie die Größe des Darstellungsbereichs ändern.

+0

Korrigieren Sie mich, wenn ich falsch liege, aber ich denke nicht, dass Sie eine maximale Breite oder maximale Höhe auf einem Hintergrundbild festlegen können. Nun, nicht mit einer stilvollen Eigenschaft AFAIK –

+0

Das OP-Problem ist, dass die Größe des Hintergrundbildes, wenn in% gemessen, relativ zur Größe des Ansichtsfensters (und nicht die Größe des Elements), wenn der Hintergrund-Anhang ist 'fest'. Siehe auch meine [Geige] (http://jsfiddle.net/MrLister/3b8kroar/1/). –

+0

@CraigWayne Sicher kannst du. Mit einer Medienabfrage. –

1

Als Hintergrund ist fixed seine relativ zu body Elemente, deshalb als div zu größerer Breite Größe 100% 100% Ergebnisse einstellen, an dem Bild angewandt wird. Es ist gleich Körper width nicht div.

Wenn Sie feste height festlegen möchten, als Sie es gerade in px setzen müssen, aber in diesem Fall Bild wird nicht sein Verhältnis sparen:

div { 
 
    background: url(//c6.staticflickr.com/8/7389/26907631325_f8b05bb68d_c.jpg) fixed left top/100% 433px no-repeat; 
 
    width: 800px; 
 
    height: 433px; 
 
} 
 

 
html { 
 
    height: 10000px; 
 
}
<div> 
 
    
 
</div>

+0

Aber warum? Warum sollte sich der Hintergrund _size_ ändern, wenn Sie den Hintergrund _attachment_ ändern? Das ist ein Fehler. –

+0

@Mr Lister: Siehe https://www.w3.org/TR/css3-background/#background-positioning-area – BoltClock

+0

@MrLister es wie es funktioniert, wenn es 'behoben' dann ist es relativ zum Körper positioniert ', wie wenn das Element' position: fixed; 'hätte – t1m0n

Verwandte Themen