2017-08-15 9 views
1

私は以下のHTMLとCSSを持っており、カードの要素の中に(カードヘッダー要素にある)中間にテキストを揃えたいと考えています。しかし、それが動作していない場合、何が間違っているか確認してください。カードのUIのテキストが中央に揃っていない

も私を提案してください、それはあなたがしなければならないのは、ここにあなたの#cardheader ID

display: blockを追加で

JSFiddle

#card { 
    margin : 3%; 
    padding: 2%; 
    border : 1%; 
} 

#c1, 
#c2, 
#c3 { 
    vertical-align: top; 
    margin  : 1%; 
    display  : inline-block; 
    width   : 30%; 
    height  : 600px; 
    box-shadow : 0 4px 10px 0 rgba(0,0,0,0.8); 
    transition : 0.2s; 
    border-radius : 8px; 
} 

#c1:hover, 
#c2:hover, 
#c3:hover { 
    box-shadow: 0 8px 25px 0 rgba(0,0,0,0.8); 
} 

#c1 { 
    background-color: #ecf0f1; 
} 

#c2 { 
    background-color: #ecf0f1; 
} 

#c3 { 
    background-color: #ecf0f1; 
} 

cardheader { 
    font-size : 20px; 
    font-weight: bold; 
    text-align : center; 
} 

答えて

2

<cardheader>は有効なHTMLタグではありません。

有効ではありません:私はcardheaderのクラスで<div>なるようにコードを変更しました

<cardheader>Option 1</cardheader> 

だから、それを変更します。

<div class="cardheader">Option 1</div> 

そしてCSSで、への変更cardheader.cardheader

https://jsfiddle.net/479nk6so/2/

+0

IDSの代わりにCSSをクラスに変換する方法 – Batman

+1

最後のルールのセレクタを変更する必要があるのは、上で指摘したように、更新されたJSFiddleで変更するだけです。他のIDをクラスに変更したい場合は、タグのHTML属性を 'id =" "' 'class =" "'に変更し、CSSではポンド記号 '#'をピリオド '.'に変更します。 – skyline3000

0

以下のようにCSSを持っていることをお勧めが更新されていますフィドル:jsFiddle

あなたの質問については、これが良い方法でしょうか。私はあなたが私が見ることができるものと同じスタイルを持つので、あなたは各カードに同じクラスを使用することをお勧めします。これは、あなたのCSSをきれいにします(多くのIDの代わりに1つのクラスをスタイルする必要があります)、そして長期的には混乱を避けるのに役立ちます。

希望すると便利です。

+0

実際には、中央のテキストを整列させた状態でcardheaderだけを作成したい。他の部分はカードの中で一直線になるようにしておきます。 – Batman

+1

@Batman私はフィドルと答えを更新しました。お役に立てれば! –

1

display:block;cardheaderを追加すると、テキストの配置の問題が解決されます。

+0

これは問題を解決しますが、 ''は有効なタグではないため、HTMLまたはCSSセレクタとして使用しないでください。 – skyline3000

+0

HTML5/HTML5.1仕様によれば、https://www.w3.org/TR/html51/syntax.html#writing-html-documents-elementsで読むことができます。 (HTML5は2014年に承認されました。この時点で古いものは使用しないでください)。HTML検証サービスでこのコードを実行すると、エラー "Element cardheaderが要素divの子として許可されていません" – skyline3000

関連する問題