Warum kann ich ein Element nicht mit der Anzeige ausrichten: Block und Breite: X?

8

Gesamt n00b Frage hier (zumindest für die CSS-Elite):

Warum scheint ein Element mit display: block; und einem Wert für width nicht mit der Eigenschaft text-align des übergeordneten Elements übereinzustimmen? Das heißt, es scheint immer darauf zu bestehen, links zu bleiben.

Hier ist ein jsFiddle, das das Problem veranschaulicht.

Offensichtlich muss dies mit der CSS-Spezifikation übereinstimmen (ich meine, wenn Chrome, Firefox und Opera darin einig sind, habe ich sehr wenig Zweifel); Ich verstehe es einfach nicht.

    
Dan Tao 07.05.2012, 23:45
quelle

3 Antworten

10

Der Text wird direkt in einer 150px-Box ausgerichtet. Das ist richtig. Ein Blockelement wird nicht an die Textausrichtung im übergeordneten Element ausgerichtet.

Um dies zu beheben, müssen Sie entweder display: inline-block oder float: right für das .width div.

verwenden

edit: Fügen Sie mit float clear: right hinzu, um zu vermeiden, dass es in der gleichen Zeile wie das vorherige div ist

    
michaelward82 07.05.2012, 23:50
quelle
0

Es liegt daran, dass Ihre Klasse Blockbreite und keine Breite hat. Benenne die Klasse block_width um und mache dann in deinem css die letzte .block_width statt der .width die du hast und es funktioniert

    
Ken W 07.05.2012 23:49
quelle
0

<span> ist ein Element mit display: inline . Elemente mit display: inline nach der Textausrichtung. Elemente mit display: block folgen nicht der Ausrichtung von Text, die vom Float auf OWNED ausgerichtet sind.

Wenn Sie nur die Breite des Elements ändern bleibt inline, nach der Ausrichtung von Text, aber wenn Sie Ihre Anzeige zu blockieren und ändern Sie die Breite ändern, nimmt der Inhalt die Ausrichtung von Text, aber das Element nicht. Ich habe versucht, dies mit etwas Farbe in Ihrem Code zu veranschaulichen;)

Ссылка

    
Oswaldo Acauan 07.05.2012 23:58
quelle

Tags und Links