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

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

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

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

CSS

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

Q&A

1回答

2993閲覧

marginやpaddingでliとliが重なる原因について

ojreee

総合スコア8

HTML

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

CSS

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

0グッド

0クリップ

投稿2022/06/08 07:35

編集2022/06/08 09:00

お世話になっております。
フリーで公開されているテンプレートをお借りして絞り込みのフォトギャラリーを作成しようとしています。

お借りしているテンプレートはこちらです。
6-2-2 カテゴリ別に画像を並び替える

こちらの

html

1 <ul class="grid"> 2 <li class="item sort01"> 3 <div class="item-content"> 4 <a href="/6-2-2/img/01.jpg" data-fancybox="group1" data-caption="グループ1キャプション"><img src="/6-2-2/img/01.jpg" alt=""></a> 5 </div> 6 </li> 7~省略~ 8   </ul> 9

をこのように変更

html

1 <ul class="grid"> 2 <li class="item sort01"> 3 <div class="item-content"> 4      <a href="">タイトル</a> 5 <a href="/6-2-2/img/01.jpg" data-fancybox="group1" data-caption="グループ1キャプション"><img src="/6-2-2/img/01.jpg" alt=""></a> 6      <a href="">詳細</a> 7 </div> 8 </li> 9~省略~ 10   </ul>

リンクを装飾するためにaタグにpaddingを仮に上下30pxつけようとしたところ、li同士が被ってしまいました。
よく見るとpositionで並べられていたので.itemのposition: absolute;が原因かとおもい、色々試してみたのですが消して他の方法でレイアウトしようと試みるも、絞り込みが効かなくなってしまったり、listにmarginが効き、階段のようにズレてしまいました。

list同士の間に余白を付けられる方法はありますでしょうか。

補足
【1】~【2】
イメージ説明
ここからadosluteを消すと
イメージ説明
階段状+margin(【1】~【3】の手順で追加したものではない)が現れました。

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

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

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

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

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

Lhankor_Mhy

2022/06/08 08:11

「aタグにpaddingを仮に上下30pxつけようとした」とは、以下のようなコードでいいのですよね? a { padding: 30px 0; } ご提示のコードを試してみましたが、問題が再現しませんでした。 おそらく、ご提示の部分には原因はなさそうに思います。 ご提示いただいていない部分に原因があるか、問題の共有が上手くできていないと思います。 問題再現の手順をもう少し詳しく書いていただけますか?
ojreee

2022/06/08 08:57

ご確認いただきありがとうございます! そうですね、実際には追加したaタグにclassを付けて、どちらにもpadding: 30px 0px;を追加した状況になります。 私が行ったことがaタグの追加、aタグにpaddingを追加、position: absolute;の削除です。 【1】aタグを追加 【2】aタグにpaddingを追加 その時点で追加した画像のような現象が起こりました。liとliが重なり合っている(aタグのpaddingやmargin分ズレることがない) この時点では階段のようにずれる現象は起きていません。 【3】liにpaddingやmarginを追加しても要素が重なることがわかったため、positionを確認して一度消してみたところ、階段状の現象が起きてしまいました。
guest

回答1

0

インラインだからかもしれません。

ボックスの外側の表示タイプが inline の場合:

  • ボックスは改行されません。
  • width と height のプロパティは適用されません。
  • padding、margin および border が適用されますが、他のインラインボックスがボックスから移動することはありません

リンクに使用される <a> 要素や、<span><em> および <strong> はすべて、デフォルトではインラインで表示される要素の例です。
ボックスモデル - ウェブ開発を学ぶ | MDN

どのような表示にしたいのかわからないのですが、ひとまず、

CSS

1 a { 2 display: block; 3 }

などとしてみてはどうでしょうか。

なお、絶対配置を外したときに階段状になるのは仕方ないと思います。

投稿2022/06/08 09:18

Lhankor_Mhy

総合スコア37413

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

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

ojreee

2022/06/09 01:29

display: block;を試したところ、やはりリスト同士が重なってしまいました… https://codepen.io/ugokuweb/pen/yLaxBNE やりたかったことは、ここのテンプレートのリスト同士の隙間を空ける、のみです。 ただcodepen上ではpaddingを追加してもちゃんと隙間が空くようですね… ありがとうございました。送っていただいたリンク先とご回答を参考に、色々試してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問