.list-inline を使用した「新着情報」
以下のコードで新着情報一覧を作りました。
PHP
1<div class="news"> 2 <h3>新着情報</h3> 3 <ul class="list-inline"> 4 <li class="list-inline-item news-date">7月14日</li><!-- width: 80px; --> 5 <li class="list-inline-item news-category">お知らせ</li><!-- width: 100px; --> 6 <li class="list-inline-item news-subject">本日のイベントは雨天のため、中止いたします。</li><!-- width: 900px; --> 7 </ul> 8</div>
しかしこれだけですと、上記コードの「お知らせ」という文字が「イベント情報」や「PR」だったりしたときに、文字数が増減する関係で「本日のイベントは雨天のため、中止いたします。」の開始位置(頭)が揃わないんです。
なので仕方なく以下のCSSを追加しました。
CSS
1.news-date { 2 width: 80px; 3} 4.news-category { 5 width: 100px; 6} 7.news-title { 8 width: 900px; 9}
これでそれぞれの位置はバッチリです。以下の画像のようにピッタリ揃いました。(画像上部の「ALL お知らせ イベント、一覧を見る」の部分はスルーしてください)
ところがこれをスマホで表示させると、画面表示域を大幅に超えてしまって表示が崩れてしまいます。
ではやはりピクセルで指定してはダメなのか……と思い、CSSを削除したところ、
そもそも上記PHPコード(.list-inlineを用いた方法)ではスマホでの表示レイアウトを自由に組めないといいますか、うまいこといきそうにありませんでした。
スマホ表示での理想は以下の画像のような感じだったんです。
日付(7月14日)とカテゴリー(お知らせ)のあとに改行を入れて、
件名(本日のイベントは雨天のため~)を表示させる形です。
でもカテゴリーの部分に改行ってどうやって入れるんだろう……
<br>なんてしたらダメそうだし……そうすると .list-inline じゃダメなのか……と。
そこで、col を使う方法ならどうだろう?と思い、実際に試してみました。
row col を使用した「新着情報」
PHP
1<div class="row news"> 2 <h3>新着情報</h3> 3 <div class=""> 4 <div class="col-6 col-md-2 news-date">7月14日</li> 5 <div class="col-6 col-md-2 news-category">お知らせ</li> 6 <div class="col-12 col-md-8 news-subject">本日のイベントは雨天のため、中止いたします。</li> 7 </div> 8</div>
先ほどCSSで指定していたそれぞれの width は全て削除し、col-md-2 とか col-md-8 とかで横幅を調整しました。
ただ、惜しいような気もするんですが、とにかく隙間が広すぎて。
何とか狭めようと思って col-md-1 とかすると 2019/07/1<改行>4 とかなっちゃってダメでした。
そして結局最初の .list-inline でレスポンシブに対応する方法ってそもそもあるんだろうか~と悩んでいるところです。
もしくは全く違う別の方法があるのでしょうか。
どなたかお教えいただければ幸いです。どうかよろしくお願いいたします。

回答2件
あなたの回答
tips
プレビュー