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

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

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

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

CSS

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

Q&A

解決済

3回答

2272閲覧

Progate 中級 text-contents、 inline-block について

aku424tt

総合スコア15

HTML

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

CSS

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

0グッド

0クリップ

投稿2020/02/14 11:03

lesson-icon pもtxt-contentsも同じ<p>でブロック要素なのになぜtxt-contentsはdisplay:inline-block;にしてlesson-icon pはブロック要素にする必要があるのですか。分かる方いらっしゃいましたら回答お願いします。

イメージ説明

html

1 <div class="lesson-wrapper"> 2 <div class="container"> 3 <div class="heading"> 4 <h2>Learn Where to Get Started!</h2> 5 </div> 6 <div class="lessons"> 7 <div class="lesson"> 8 <div class="lesson-icon"> 9 <img src="https://prog-8.com/images/html/advanced/html.png"> 10 <p>HTML & CSS</p> 11 </div> 12 <p class="txt-contents">Webページの作成に使用される言語です。HTMLとCSSを組み合わせることで、静的なページを作り上げることができます。</p> 13 </div> 14 <div class="lesson"> 15 <div class="lesson-icon"> 16 <img src="https://prog-8.com/images/html/advanced/jQuery.png"> 17 <p>jQuery</p> 18 </div> 19 <p class="txt-contents">素敵な動きを手軽に実装できるJavaScriptライブラリです。 アニメーション効果をつけたり、Ajax(エイジャックス)を使って外部ファイルを読み込んだりと色々なことができます。</p> 20 </div> 21 <div class="lesson"> 22 <div class="lesson-icon"> 23 <img src="https://prog-8.com/images/html/advanced/ruby.png"> 24 <p>Ruby</p> 25 </div> 26 <p class="txt-contents">オープンソースの動的なプログラミング言語で、 シンプルさと高い生産性を備えています。大きなWebアプリケーションから小さな日用ツールまで、さまざまなソフトウェアを作ることができます。</p> 27 </div> 28 <div class="lesson"> 29 <div class="lesson-icon"> 30 <img src="https://prog-8.com/images/html/advanced/php.png"> 31 <p>PHP</p> 32 </div> 33 <p class="txt-contents">HTMLだけではページの内容を変えることはできません。PHPはHTMLにプログラムを埋め込み、それを可能にします。</p> 34 </div> 35 </div> 36 </div> 37 </div> 38 39

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

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

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

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

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

guest

回答3

0

私もProgateを学習している者です。

原因は前回答者さんの説明通りですがlesson-wrapperで設定しているtext-aligh: centerにあります。
lesson-icon ptxt-contentsも同じ<p>タグですが、
txt-contentsの方はwidth:80%になっているので、display: inline-blockを設定しなければtext-aligh: centerが効かず左に寄ってしまいます。
代わりにmargin: 20px auto 0 auto;としても良いですがここではdisplay: inline-blockとしている様です。

イメージ説明

投稿2020/02/15 13:15

PIGPEN

総合スコア36

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

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

aku424tt

2020/02/16 00:32

回答ありがとうございます。 txt-contentsにdisplay:inline-block;を指定する理由はわかるのですが、lesson-icon pにdisplay:inline-block;を指定しない理由が分からない状態です。
PIGPEN

2020/02/16 01:49

hatena19さんが回答してくれていますが、 lesson-icon pはwidth: 100%と指定してlesson-iconのwidthに合わせているので、 inline-blockにしなくても中央揃えが出来る様になっています。 なのでここではinline-blockにする必要はありません。 どうしてもinline-blockにしたいのであれば、 left: 0px; z-index: 5;を追加すれば中央揃えになるはずです。
guest

0

ベストアンサー

該当ページを検証ツールで見てみると、
親要素(.lesson-wrapper)でtext-align: center;を設定して各要素の中央寄せしているようですね。
text-align: center;はインラインブロックにしか有効でないので、
.txt-contentsdisplay:inline-block;を設定して中央寄せが有効になるようにしているのだと思います。

コメントより

txt-contentsにdisplay:inline-block;を指定する理由はわかるのですが、lesson-icon pにdisplay:inline-block;を指定しない理由が分からない状態です。

lesson-icon p

css

1 position: absolute; 2 top: 90px; 3 width: 100%;

というように絶対値で位置決めしています。
ですので、inline-block にする必要はないのです。
pブロック自体は幅100%なので幅は親ブロック全体に広がり、上から90pxの位置に固定されます。
中のテキストはtext-align: center;が効いてpブロック内で中央寄せになります。

投稿2020/02/14 11:38

編集2020/02/16 00:52
hatena19

総合スコア34075

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

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

aku424tt

2020/02/14 11:56

回答ありがとうございます。 lesson-icon pにdisplay:inline-block;を指定すると、lesson-iconの中のもじが全て消えてしまいます。 もしわかればなぜ消えてしまうのか教えていただきたいです。
hatena19

2020/02/14 12:11

当方のところでは display:inline-block; を指定しても消えないです。 position: absolute; で位置決めしているので。 position: absolute; を消してませんか。
aku424tt

2020/02/14 12:29

回答ありがとうございます。 もう1度lesson-icon pにdisplay:inline-block;を指定してみましたがやはり消えてしまいます。 position: absolute;は消していません。
hatena19

2020/02/14 13:08

見本ページに検証ツールで確認しています。これ以上は私からは回答は難しいです。 有料ページまで進んで確認するメリットは当方には何もないので。 あと、m.ts10806さんも言われているようにProgateに聞かれては。ということになります。
aku424tt

2020/02/15 06:24

回答ありがとうございます。 何度もすいません。通常でしたらlesson-icon pにdisplay:inline-block;を指定しても消えることはないという解釈でよろしいですか?
hatena19

2020/02/15 06:28

はい、そうです。また、display:inline-block; を指定する必要性もないと思います。見本ページにはありません。
PIGPEN

2020/02/15 13:23

文字が消えてしまうということですが、z-indexの順番が問題です。 試しにz-index: 5;を追加してください。 右にずれた位置に出て来るはずです。
aku424tt

2020/02/16 00:34

回答ありがとうございます。 z-indexを指定してみましたが中央には出てきませんでした。
guest

0

Progate のお手本コードなのであればProgate に聞かれては。
1つのゴールのための道は1つではないので、意図は作った人しか分からないのが当然といえば当然です。

投稿2020/02/14 11:34

m.ts10806

総合スコア80875

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

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

aku424tt

2020/02/14 11:58

回答ありがとうございます。 確かにゴールは一つしかないということは無いので聞いてみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問