Antworten auf deine Fragen:
Neues Thema erstellen

CSS Bild Horizontal positionieren

Donatien

Aktives Mitglied

Nun hab ich mich mal eine Woche mit CSS bschäftigt und meine ersten Templates erstellt ..... so weit, so gut...

Code:
.bildlinks {
  float: left;
  margin-right: 20px;
  margin-bottom: 12px;
  clear="all"
}
.bildrechts {
  float: right;
  padding: 3px;
  margin-bottom: 3px;
  margin-left: 3px;
  clear="all"
 }

Ein Bild rechts, oder links positionieren klappt gut.
Aber wie z.T. kann ich es Horizontal in der MITTE positionieren??
Ich hab schon über Google danach gesucht, aber nichts funktionierendes gefunden :(


Danke für Eure Mühe
 

sokie

Mod | Web

AW: CSS Bild Horizontal positionieren

floaten ist eine andere sache als positionieren. ein element kann nur entweder links oder rechts gefloatet werden oder eben gar nicht (none).
soll ein Bild innerhalb eines Bereichs horizontal zentriert werden kann man das erreichen, wenn man das umhüllende Element mit einem text-align: center versieht, was dazu führt, dass der Inhalt (die inline!-Inhalte wie img) horizontal zentriert wird.
 

Br0

Helfer

AW: CSS Bild Horizontal positionieren

Oder einfach:

.bildmitte {
width: 350px;
margin: 0 auto;
}

das margin bewirkt das der abstand nach oben und unten 0 ist und zur seite automatisch. mit einer festen width angabe wird das bild somit zentriert.
 

jackprince

xHTML & CSS Junkie

AW: CSS Bild Horizontal positionieren

Bsp. code

HTML:
<div id="container">
 <img src="bildurl/name.jpg" alt="bild" class="center_me" id="bild_1" />
<br />
 <img src="bildurl/name.jpg" alt="bild" class="center_me" id="bild_2"/>
<br />
 <img src="bildurl/name.jpg" alt="bild" class="center_me" id="bild_3"/>
</div>

CSS dazu
HTML:
#container {
 width: 100%;
 text-align: center;
}

/*folgendes ist quasi entweder oder
variante 1 betrifft alle bilder innerhalb von #container
vrainte 2 alle bilder mit der Klasse und variante 3 ein bestimmtes bild */

#container img {
margin: 0 auto;
}

.center_me{
margin: 0 auto;
}

#bild_2{
margin: 0 auto;
}
Damit das funktioniert, brauch das Element was zentriert wird eine
Feste breite.

Hoffe das hilft.
 

sokie

Mod | Web

AW: CSS Bild Horizontal positionieren

bilder sind inline-elemente, und lassen sich über das Margin nicht zentrieren. Inline Elemente lassen sich per text-align zentrieren.
 

jackprince

xHTML & CSS Junkie

AW: CSS Bild Horizontal positionieren

huch *g*

dann eben noch ein "display: block" in die css angaben zu bildern.
Wobei das natürlich eine obsolete Angabe wäre.
 

Donatien

Aktives Mitglied

AW: CSS Bild Horizontal positionieren

hmmmmmm....

und wie wäre dann also der korrekte css eintrag, um 1. ein bild "line" zu zentrieren und zweitens mittig zu floaten (sodass) text herum fliesst?


....und ist es eigentlich korrekt, dass ich am ende immer clear="all" einsetze?

vielen dank für eure geduld :)

p.s.: ich habe es tasächlich geschafft, eine css basierende hp zum laufen zu bringen, dank den little boxes, sehr zu empfehlen!!
 

jackprince

xHTML & CSS Junkie

AW: CSS Bild Horizontal positionieren

Die Positionierung, an sich um ganz sicher zu gehen und auch html4 bzw. xhtml1 strict valide zu machen.

mittig:

Code:
[COLOR=#800000]<style type="text/css">[/COLOR]
 [COLOR=#000080].[/COLOR][COLOR=#ff00ff]centerImage[/COLOR]   [COLOR=#000080][B]{[/B][/COLOR]
  [COLOR=#000080]text-align:[/COLOR][COLOR=#ff0000]center[/COLOR][COLOR=#000080];[/COLOR]
  [COLOR=#000080]margin-top:[/COLOR][COLOR=#0000ff]0[/COLOR][COLOR=#ff0000]px[/COLOR][COLOR=#000080];[/COLOR][COLOR=#000080]
  margin-bottom:[/COLOR][COLOR=#0000ff]0[/COLOR][COLOR=#ff0000]px[/COLOR][COLOR=#000080];[/COLOR][COLOR=#000080]
  padding:[/COLOR][COLOR=#0000ff]0[/COLOR][COLOR=#ff0000]px[/COLOR][COLOR=#000080];[/COLOR]
[COLOR=#000080][B]}[/B][/COLOR][COLOR=#800000]</style>[/COLOR]
Code:
[COLOR=#008000]<div class="centerImage">[/COLOR]
 <img src="imgName.gif" alt="image description" height="100" width="100">[COLOR=#008000]
</div>[/COLOR]
Im Endeffekt wird dadurch das Element was das Bild umschließt genutzt um das Bild zu zentrieren.

Links:

einfach "float:left" als style für das/die bild/bilder

Rechts:

einfach "float:right" als style für das/die bild/bilder


---

bezüglich dem "clear".

"Clear" benötigst du dann wenn du ein float aufheben möchtest.
Das ist schon ein recht umfangreiches Thema. Ich versuch es mal kurz zu umreißen.

Dazu erst einmal vorrausgeschickt (stichwort dokumentenfluss):


Webseiten Seiten werden durch sogenannte Auszeichnungssprachen
"erstellt" (bsp. XML und HTML).

Der Unterschied zu Programmiersprachen ist das diese z.B. nicht im Code
hin und her springen. Sondern der Browser nimmt sich quasi eine Datei und "rendert" ("zeichnet") diese entsprechend der Angaben nacheinander (von oben ach unten).

Stell dir das vor wie ein Mensch dieser hat einen Körper (body).
Nun möchte man diesen Mensch als Seite darstellen.
Der Körper hat ein paar bestimmte Dinge die man als Standard ansehen kann: Kopf, Oberkörper und Unterkörper ...
Das sieht als HTML z.B. wiefolgt aus:

HTML:
...
<body> <!-- hier beginnt der Körper -->
 <div id="Kopf">
  ... alles was in den kopf gehört ...
 </div>
 <div id="Oberkoerper">
  </div>
 <div id="Unterkoerper">
 </div>
</body> <!-- hier hört der Körper auf -->
...
Der Browser würde nun schritt für Schritt von Oben nach unten
den "Menschen" zeichnen. Angenommen du hättest zu diesem html code per css jedem Teil des Körpers ein passendes Hintergrundbild (und größe natürlich)festgelegt. Dann würden wir nun einen Menschen vor uns sehen.

Nun könntest du in jeden Bereich noch Unterbereiche machen um z.B.
spezifische Körperregionen darzustellen.

Der Browser würde also immer Stück für Stück alles Zeichnen
beim Kopf z.B. erst Haare, Stirn, Augen, Nase und Mund. Eines nach dem anderen.

Das ist Quasi der "Dokumentenfluss", eines nach dem anderen, alles braucht einen bestimmten Platz und da Haare, Stirn, Augen, Nase und Mund einen bestimmen Platz brauchen ist der Kopf größer als würde eines davon fehlen.

Es geht quasi Stück für Stück nach unten.

...

Nun ist eine Website aber kein Mensch und man möchte bestimmte Dinge
spezifisch darstellen.

Für sagen wir mal einen Artikel heißt das z.B.

Text + Bild

HTML:
<p>bla bla bla  bla bla bla  bla bla bla  bla bla bla  bla bla bla  bla bla bla 
<img src="bild.jpg"/>
bla bla bla  bla bla bla  bla bla bla  bla bla bla  bla bla bla  bla bla bla 
</p>
Das würde hier bedeuten, der Browser zeichnet Text dann ein Bild und weiter Text. Ganz normaler Dokumentenfluss (da alles inline (also fließend in einer reihe) Elemente).

Nun könntest du für den absatz (p) generell sagen linksbündig, rechtsbündig oder zentriert. Je nachdem wird von dem Punkt ausgehend
in die entgegengesetzte richtung bzw. in beide Richtung Platz beansprucht der benötigt wird um den Inhalt darzustellen. Dies gilt jedoch allgemein, text und Bild.

---
bla bla bla
killie_button.png
bla bla bla

---
bla bla bla
killie_button.png
bla bla bla
---

bla bla bla
killie_button.png
bla bla bla

---


Schön und gut, nun möchtest du aber gern genrell ganz normal linksbündigen Text haben aber das Bild soll rechts dargestellt werden.
Das Text soll links sein und das Bild umfließen.

----

bla bla bla bla bla bla bla bla bla bla bla bla
killie_button.png

bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla

----

Das geht einfach mit "align" per css nicht. Du benötigst "float"

Was macht "float"?

"floated" man ein Element links oder Rechts wird es quasi aus dem Dokumentenfluss herausgenommen und links bzw. rechts an den Rand gesetzt.

Das geht auch mit mehreren Elementen. Es wird aber beim floaten der Elemente der Dokumentenfluss als die Reihenfolge wie die Elemente im Dokument stehen beachtet (auch wenn sie für nicht gefloatete Elemente nicht mehr in diesem Dokumentenfluss existieren /platz beanspruchen).

Besispiel:

Angenommen unser HTML sieht wie folgt aus

HTML:
<p>
<span id="1">-1-</span>
<span id="2">-2-</span>
<span id="3">-3-</span>
</p>
Nun sagen wir im css "span {float: left;}"

  • Darstellung: -1--2--3-
Nun sagen wir im css "span {float: right;}"

  • Darstellung: -3--2--1-
Also erst span 1 nach rechts, dann span 2 nach rechts und dann span 3.

Wozu braucht man nun aber "clear"

Beim floaten von Elementen passiert neben dem eben aufgeführten sichtbarem (und erwünschtem) noch folgendes.

Zurück zum Beispiel Mensch und Kopf.

Wie festgestellt hat der Kopf unter anderem "Haare, Stirn, Augen,
Nase und Mund".
Als HTML sieht das also z.B. wie folgt aus:

HTML:
<div id="kopf">
 <p id="haare">...</p>
 <p id="stirn">...</p>
 <p id="augen">...</p>
 <p id="mund">...</p>
</div>
Nun kommen wir bei unseren "Mensch-website"
auf die Idee die Augen und den Mund nach links zu floaten.

Im Normalfall ohne float stellt der Kopf für jedes Element mehr Platz zur Verfügung. Er zieht sich vertikal in die Länge da die Elemente Platz benötigen.

Mit float nehmen wir nun augen und mund aus dem Dokumentenfluss.
Sie werden (je nach größe und verfügbarem Platz) nebeneinander dargestellt.

Der Kopf stellt aber von sich aus nur Platz für Elemente im Dokumentenfluss bereit. Da Augen und Mund in dem beim Rendern nicht mehr drinnen sind, wird der Kopf quasi kleiner.

Um den Kopf dazu zu zwingen eine korrekte Größe zu haben müssen wir den normalen Dokumentenfluss wiederherstellen. Dazu geben wir in den Kopf nach dem Mund einfach noch das Kinn ein (was ja sowieso noch fehlte).
Und für das Kinn legen wir fest das es das Floaten unterbrechen soll (sonst würde es wenn platz ist auch noch neben die gefloateten Elemente kommen) und den normalen Dokumentenfluss wiederherstellen soll.

Anders gesagt wir geben dem Element die Eigenschaft "clear".

Was bedeutet das für den Fall von Artikel + text.

Ohne clear bei gefloatetem Bild gibt es z.b. folgende möglich Szenarien:


  • Rote Rahmen stellt ein Absatz (p) mit rotem Rand dar Darstellung entspricht defakto dem Verhalten (einfach mal nachbauen und probieren)



Ich hoffe, das hat geholfen zu verstehen. wozu "clear" ist.
ich weiß das ist ein etwas längerer Beitrag geworden, aber
wann und wie man "clear" verwendet kann man glaub ich nur
richtig verstehen wenn man eben Weiß was der "Dokumentenfluss"
ist und in welcher Art und Weise "float" ihn "beeinflusst".


MfG

jack
 

Donatien

Aktives Mitglied

AW: CSS Bild Horizontal positionieren

Wooooooooooooooooooooooooooow..
Da hat hat sich aber jemand sehr viel Arbeit gemacht, danke dafür!!!
Das mit Wrapper. Head ... (Körper) hatte ich, mit meiner guten, mitteleuropäischen Halbbildung, schon nach Vereinnahmung der "Little Boxes" verstanden :)

Dank der DVD und sehr hilfbereiten Menschen wie Dir, habe ich schon eine ordentliche Musterseite zum Laufen gebracht. :)

Ich habe bisher 10 Jahre damit verbracht, Dreamweaver zu verwenden, mit Frames und iframes zu arbeiten, weshalb ich erstmal meinen "Denkschalter" umlegen muss. :)



Das Bild ist zwar mittig, wird aber nicht vom Text umschlossen :)

MfG
Fritz
 
Zuletzt bearbeitet:

jackprince

xHTML & CSS Junkie

AW: CSS Bild Horizontal positionieren

Ist mir keine schnelle Methode bekannt.

Das erreichst du nur über Umwege.

Im Artikel noch extra 3 absätze (text davor, bild, text danach).
gibst denen eine gemeinsame Klasse und eine breite von ca. 32%
(besser weniger wegen padding, margin etc.) und floatest sie
linksbündig.
 

owieortho

Aktives Mitglied

AW: CSS Bild Horizontal positionieren

@jackprince
Echt Klasse, welche Mühe Du Dir hier gemacht hast. Hut ab und beide Daumen hoch!
 
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

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.635
Beiträge
1.538.449
Mitglieder
67.556
Neuestes Mitglied
Ggirl
Oben