2017-01-05 6 views
1

divのテキストの整列はtext-alignで行います。これは、通常、正常に動作します:divのテキストをテキスト整列しないのはなぜですか?

<div style="text-align:right;border:1px solid red"> 
 
    this goes to the right 
 
</div>

私はアライメントが適用されていない(vue.jsの助けを借りて生成された大規模なHTMLの途中で)コードの部分を持っています。私はdivの幅を強制し、それ内のテキストを右揃えになりたかった。

enter image description here

あり、右に移動する8:00ための十分なスペースがあるが、それは中央にとどまります。 CSSスタックは、この要素のための特別な何も表示されません:

enter image description here

この位置合わせのための理由(または不足のために)何ができますか?

注:HTML/SCSSコード全体がかなり含まれているわけではありません。うまくいけば、CSSスタックで十分でしょうか?

+0

画像を追加する代わりにコードを追加してください。 –

+0

@DreamHunter:私のメモを質問の一番下に表示しているかどうかはわかりません(私はこのようなリクエストを予期しています)。私は常に問題を再現するために最小限のコードを置いています - ここで(複数の.scssファイルから想像できるように)、問題が発生する場所は生成された大量のHTMLに埋もれています。 – WoJ

+0

可能な重複:[*なぜ "text-align:center"が必要なのですか?](http://stackoverflow.com/q/39678610/3597276) –

答えて

1

Flexの項目がフレックスコンテナの該当する値がstretchに設定されていない場合は、コンテンツの幅や高さに合わせて縮小し、フレックス項目のflex-growではありませんtext-alignを使用する方が良いだろう1に設定します。つまり、ボックスのサイズはコンテンツのサイズなので、text-alignは効果がありません。 (もちろん、flex-basiswidth要因もありますが、ここでは説明しません。)

はまた、フレックスコンテナが自動的に匿名フレックス項目に包まれている内に直接含まれているテキストに注意してください。

は、Flexコンテナでこれを設定することによって、これを修正することができます

div.start_display { 
    display: flex; 
    justify-content: flex-end; 
} 

それとも、あなたがそこにフレックス必要がない場合は、デフォルトのブロックにそれをリセットします。

div.start_display { 
    display: block; 
    text-align: right; 
} 

あるいは、ラップ別のタグには、のは言わせ<span>

div.start_display span { 
    flex: 1; 
    text-align: right; 
} 

あなたはルの特異性を高める必要があるかもしれませんそれはスクリーンショットでは不明なので、セレクターのベル。

5

ここでdisplay: flexを使用しているため、text-alignは機能しません。

div { 
justify-content: space-around; 
} 

div { 
justify-content: flex-end; 
} 

にある[編集]を変更します。@Jacobグレー通知として、 div要素に display: flexを追加することは良いアイデアではありません。 divからこのプロパティを削除し、あなたがそれを必要な場所

+1

ここでの問題はOPがページのすべての 'div 'を表示しているということです。 –

+0

右!これは間違いなく問題です! :) – Kantoci

+0

@JacobGray:全体のページ全体が「煉瓦」(いくつかの層が深い)で構成されていて、すべてが「フレックス」を介して一緒にとどまっています。これがデフォルトの表示として 'flex'を持つ理由でした。 – WoJ

関連する問題