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

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

ただいまの
回答率

88.92%

指定していないのに右寄せになる

解決済

回答 4

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 208

tetsuya7724

score 27

前提・実現したいこと

書籍でプログラミングを勉強中です。
書籍通りにプログラミングを書いたら、サイドバーの広告のカテゴリーリストが右寄せになっています。
cssで指定していないのになぜこのようなことが起こるのでしょうか?

すべて左寄せにしたいです。
イメージ説明

該当のソースコード

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Web Cafe - NEWS</title>
  <link rel="stylesheet" href="css/index.css">
  <link rel="stylesheet" href="css/news.css">
</head>

<body>
  <div id="news" class="big-bg">
    <header class="page-header wrapper">
      <h1><a href="index.html"><img class="logo" src="images/logo.svg" alt="WCBカフェホーム"></a></h1>
      <nav>
        <ul class="main-nav">
          <li><a href="news.html">News</a></li>
          <li><a href="menu.html">Menu</a></li>
          <li><a href="contact.html">Contact</a></li>
        </ul>
      </nav>
    </header>

    <div class="wrapper">
      <h2 class="page-title">News</h2>
    </div> <!-- .wrapper -->

    <div class="news-content wrapper">
      <article>
        <!-- 記事 -->
        <header class="post-info">
          <h2 class="post-title">店内ギャラリーの絵が新しくなりました</h2>
          <p class="post-date">3/30 <span>2019</span></p>
          <p class="post-cat">カテゴリー:お店の紹介</p>
        </header>
        <img src="" alt="">
        <p>
          テキスト
        </p>
        <p>
          テキスト
        </p>
        <p>
          体に
        </p>
      </article>

      <aside>
        <!-- ./広告 -->
        <h3 class="sub-title">カテゴリー</h3>
        <!-- ./見出し -->
        <ul class="sub-menu">
          <!-- カテゴリーリスト -->
          <li><a href="#">お店の紹介</a></li>
          <li><a href="#">期間限定のメニュー</a></li>
          <li><a href="#">イベント</a></li>
          <li><a href="#">お客様との会話</a></li>
        </ul>

        <!-- ./見出し -->
        <h3 class="sub-title">このお店について</h3>

        <!-- ./本文 -->
        <p>
          体に
        </p>
      </aside>
    </div><!-- /.news-content -->

    <footer>
      <div class="wrapper">
        <p><small>&copy; 2019 Manabox</small></p>
      </div>
    </footer>
  </div><!-- /#news -->
</body>

</html>
/* NEWS */
#news {
  background-image: url(../images/art-art-materials-bright-743986-1024x768.jpg);
  height: 270px;
  margin-bottom: 40px;
}

#news .page-title {
  text-align: center;
}

.news-content {
  display: flex;
  /* 中の子要素を横並びにする */
  justify-content: space-between;
  /* 中央に隙間を開ける */
  margin-bottom: 50px;
}

/* 記事部分 */
article {
  width: 74%;
}

.post-info {
  position: relative;
  padding-top: 4px;
  margin-bottom: 40px;
  /* background-color: red; */
}

.post-date {
  background: #0bd;
  border-radius: 50%;
  /* 図形の角を丸くする */
  color: #fff;
  width: 100px;
  height: 100px;
  font-size: 1.625rem;
  text-align: center;
  /* 内部を中央寄せ */
  position: absolute;
  top: 0;
  padding-top: 10px;
}

.post-date span {
  font-size: 1rem;
  border-top: 1px rgba(255, 255, 255, 5) solid;
  padding-top: 6px;
  display: block;
  width: 60%;
  margin: 0 auto;
}

.post-title {
  font-family: "Yu Mincho", "YuMincho", serif;
  font-size: 2rem;
  font-weight: normal;
  /* フォントの太さ */
}

.post-title,
.post-cat {
  margin-left: 120px;
}

article img {
  margin-bottom: 20px;
  /* 画像の余白 */
}

article p {
  margin-bottom: 1rem;
  /* 記事の余白 */
}

/* サイドバー */
aside {
  width: 22%;
  /* background-color: red; */
}

.sub-title {
  font-size: 1.375rem;
  padding: 0 8px 8px;
  border-bottom: 2px #0bd solid;
  font-weight: normal;
  /* background-color: red; */
}

.sub-menu {
  margin-bottom: 60px;
  list-style: none;
  background-color: red;
}

.sub-menu li {
  border-bottom: 1px #ddd solid;
}

.sub-menu a {
  color: #432;
  padding: 10px;
  display: block;
  /* background-color: red; */
}

.sub-menu a:hover {
  color: #0bd;
}

aside p {
  padding: 12px 10px;
  /* background-color: red; */
}

footer {
  background: #432;
  text-align: center;
  /* フッター内部を中央寄せ */
  padding: 26px 0;
}

footer p {
  color: #fff;
  font-size: 0.875rem;
}
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

checkベストアンサー

+2

イメージ説明
仰っておられるのはこの余白の事ですよね?

.sub-menu {
  margin-bottom: 60px;
  list-style: none;
  background-color: red;
}


▲ はulへの指定ですが、、、

ulは規定値として
左にpadding(marginの場合もあるかも)が入っている為
padding-leftやmargin-left を指定しないと
左側に一定(ブラウザにより2em~)の余白が入ります。

ですので

.sub-menu {
  margin-bottom: 60px;
  list-style: none;
  background-color: red;
  padding-left: 0; /* これを追加、必要に応じ端からの数値をpxで入れます */
  margin-left: 0; /* これを追加 */
}


にすると、左にある余白は消せます

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/01 22:42

    できました。ありがとうございます。

    キャンセル

+1

cssで指定していないのになぜこのようなことが起こるのでしょうか?

ここでばっちり指定しています。

.news-content {
  display: flex;
  /* 中の子要素を横並びにする */
  justify-content: space-between;
  /* 中央に隙間を開ける */
  margin-bottom: 50px;
}

詳しくは、その書籍の「フレキシブルボックス」とか「flexレイアウト」とか書いてある(だろう)あたりを読んでください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

 <div class="news-content wrapper">
   <article>
   </article>
   <aside>
   </aside>
 </div>


とやっていてdivにflex

.news-content {
  display: flex;
  /* 中の子要素を横並びにする */
  justify-content: space-between;
  /* 中央に隙間を開ける */
  margin-bottom: 50px;
}

article、asideに74、22%とやっていて完璧に横並びにしてます

/* 記事部分 */
article {
  width: 74%;
}
/* サイドバー */
aside {
  width: 22%;
  /* background-color: red; */
}

追記

私も他の回答者も間違えたので代弁します笑
一般的に右寄せというのはこういうことを言います。
イメージ説明

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/01 21:55

    やってみましたが、直りません

    キャンセル

  • 2020/07/01 22:04

    なにをやったかわかりませんので直らなくてもこちらにどうしろと。
    右寄せというのは文字の開始部分のことですか?
    「カテゴリー」に比べて「お店の紹介」の文頭が位置が右という意味でしたら
    デフォルトのpadding、marginがあるせいなので
    .sub-menu {
    padding: 0;margin: 0;
    margin-bottom: 60px;
    list-style: none;
    background-color: red;
    }
    みたいにして消してください。

    キャンセル

  • 2020/07/01 22:14

    大変失礼しました。自分が書いたコードと全く同じコードが解答で返ってきたもので、自分でもどう返答したらいいかわかりませんでした。
    ご指摘のとおり、「お店の紹介」の文頭の位置が指定していないのに右に来ていたのでおかしいという質問でした。
    paddingとmarginで上書きをするということですね。書いてみたらできました。ありがとうございます。

    キャンセル

0

カテゴリーリストの親要素(<div class="news-content wrapper">)がflexboxコンテナだからです。
スタイルシートのコメントに自分で書いているように、そのように指定した要素の中の子要素は横並びになります。
子要素であるarticle要素とaside要素が横に並ぶので、aside要素は右側に表示されます。

.news-content {
  display: flex;
  /* 中の子要素を横並びにする */
  justify-content: space-between;
  /* 中央に隙間を開ける */
  margin-bottom: 50px;
}

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/01 22:03

    aside要素はたしかに右側にいきますが、その中のliたちはなぜ右寄せになっているのでしょうか?
    asideの中のものすべてが右寄せになるのであれば、カテゴリーの文字も右側にくると思います。

    私が質問しているのはasideが右に来ているのがおかしいといっているのではなく、aside内にあるliが指定していないのに右寄せになっていることです。

    キャンセル

  • 2020/07/01 22:23

    それなら、「リスト項目が右寄せになっているように見える」と書かないと通じない。リストとリスト項目では別のものだから。実際には、文字が右に寄っていないので右寄せ(右揃え)ではないよね。左側に隙間があるだけです。list-style-typeをnoneにしただけなので、その分のマージンまたはパディング(ブラウザーによりどっちを使うか異なる)が残っている。

    キャンセル

  • 2020/07/01 22:41

    なるほど。liにはもともとpadding or marginがデフォルトであると言うことですね。ありがとうございます。

    キャンセル

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

  • ただいまの回答率 88.92%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る