質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

1866閲覧

HTML/CSS 星評価の中央揃えを行いたい。

yu_003

総合スコア8

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/04/13 12:42

編集2020/04/13 12:51

前提・実現したいこと

現在、初心者としてフロントエンドを独学中となります。
まずHTML/CSSのみで1からポートフォリオの作成を行っております。

イメージ画像と文字と星評価(★★★☆☆)を中央揃えの実施を行っています。

発生している問題・エラーメッセージ

星評価(★★★☆☆)を中央揃えが行えません。
画像(黄緑色塗りつぶし部分)
イメージ説明

該当のソースコード

HTML

1 <section> 2 <div id="skil"> 3 <h1>スキル</h1> 4 <ol> 5 <li> 6 <div class="logo"> 7 <img src="src/ExcelVBA.png" alt="ExcelVBAロゴ"> 8 <p>VBA</p> 9 <div class="star"> 10 <div class="star-item star2"></div> 11 </div> 12 </div> 13 </li> 14 </ol> 15 </div> 16 </section> 17 18 19、、、CSS 20.star { 21 position: relative; 22 display:inline-block; 23 background-color: greenyellow; 24 text-align: center; 25 justify-content:center; 26} 27.star .star-item{ 28 position:absolute; 29 overflow: hidden; 30 justify-content:center; 31 text-align: center; 32} 33.star .star-item:before{ 34 content:"★★★★★"; 35 color: #ffcc33; 36 justify-content:center; 37 text-align: center; 38} 39.star:after { 40 content:"★★★★★"; 41 color: #ccc; 42 justify-content:center; 43 text-align: center; 44} 45 46.star2 { 47 width:40%; 48 text-align: center; 49 justify-content:center; 50} 51 52 53### 試したこと 54 55 justify-content:center; 56 text-align: center;  57 などで★評価部分のみの中央揃えを試しましたが、上手くいきませんでした。 58 59### 補足情報(FW/ツールのバージョンなど) 60 61ブラウザはChrome使用 62テキストエディターはVScodeを使用 63 64ぜひ、ご回答のほどお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2020/04/13 12:44

HTMLが中途半端、せめてliの親要素くらいは書いたほうがよいでしょう
guest

回答2

0

親要素に、display: flex; を設定して、そこで子要素の配置を設定します。

そうすると子要素(imgタグ pタグ .star)がその指定で配置されます。

css

1.logo { 2 display: flex; 3 flex-direction: column; /*縦方向*/ 4 align-items: center; /*中央揃え*/ 5} 6 7.star { 8position: relative; 9background-color: greenyellow; 10} 11.star .star-item{ 12position:absolute; 13overflow: hidden; 14} 15.star .star-item:before{ 16content:"★★★★★"; 17color: #ffcc33; 18} 19.star:after { 20content:"★★★★★"; 21color: #ccc; 22} 23 24.star1 { 25width:20%; 26}

Flexbox の基本的な使い方/Web Design Leaves

投稿2020/04/13 13:06

編集2020/04/13 13:50
hatena19

総合スコア34075

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yu_003

2020/04/13 13:24

ご回答ありがとうございます。 下記を実施してみたのですが、反映されませんでした。 .logo { width: 150px; display: flex; flex-direction: column; /*縦方向*/ align-items: center; /*中央揃え*/ }
yu_003

2020/04/13 13:32

申し訳ありません! 再度試してみたらできました! ご回答ありがとうございます!
hatena19

2020/04/13 13:56

text-align: center; は子孫要素に継承されますので、li に設定すると子や孫にも適用されます。 テキストやインライン要素(inline-blockも含む)が中央寄せになります。 今回は star が inline-block なので中央寄せになりました。 display: flex; flex-direction: column; /*縦方向*/ align-items: center; /*中央揃え*/ は、ブロック要素でも中央に配置されます。 ただし、子要素にしか聞きませんので、logoクラスの要素に設定する必要があります。 new1roさんのコメントにあるように中央寄せの方法は、中央寄せする対象によっていろいろな方法がありますので、いろいろなパターンを覚えておくといいでしょう。
yu_003

2020/04/13 14:05

flexboxは子要素のみなんですね。 new1roさんの補足までして頂き、大変勉強になります。 今回は様々な方法でもできるということが知れました。 ありがとうございます。
guest

0

ベストアンサー

こちらでいかがでしょうか?

li { text-align: center; /* 追加 */ } .star { position: relative; display: inline-block; background-color: greenyellow; /* text-align: center; justify-content: center; */ } .star .star-item { position: absolute; overflow: hidden; /* justify-content: center; text-align: center; */ } .star .star-item:before { content: "★★★★★"; color: #ffcc33; /* justify-content: center; text-align: center; */ } .star:after { content: "★★★★★"; color: #ccc; /* justify-content: center; text-align: center; */ } .star1 { width: 20%; /* text-align: center; justify-content: center; */ }

投稿2020/04/13 12:50

編集2020/04/13 12:51
new1ro

総合スコア4528

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yu_003

2020/04/13 13:00

できました!ありがとうございます! liタグで中央揃えができるのですね。 pタグなどにも反映されておりました。 なんとなく理解できました。 差し支えなければ少しご説明願えないでしょうか。
new1ro

2020/04/13 13:18

liタグなのかpタグなのか、というのはあまり関係ありません。 display: inline-block;やdisplay: inline;要素を中央揃えにしたいときは、その親要素に text-align: center;を指定する必要があります。 ---------- 左右中央揃え、左右中央配置についてのパターンはおおよそ以下の3つ、と覚えればOKです。 [1] 文字の左右中央揃え 親要素に以下のソース指定すると、子要素の「display: inline;」や「display: inline-block;」だけが、左右中央揃えになります。display: block;の子要素を左右中央揃え (左右中央配置) にすることはできません。 ``` text-align: center; ``` [2] いわゆるブロック要素 (display: block;) の要素を中央配置 display: block;が指定された要素を左右中央配置するときは、その要素自体に以下を指定します。 (親要素は関係ありません) ``` margin: 0 auto; width: 100px; /* pxか%などで指定 */ ``` [3] display: flex;での左右中央配置 子要素が左右中央配置となります。(文章は中央揃えにはなりません。) ``` display: flex; justify-content: center; /* display: flex;とセットで書かないと意味がない */ ```
yu_003

2020/04/13 13:28

ご丁寧にご説明頂きありがとうございます! 中央揃えに関しては大変悩んでいたため、 今回ご説明頂いた内容で理解が深まりました! ブロック要素 インラインブロック要素 インライン要素 など様々なパターンでのご説明誠にありがとうございます!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問