このサイトのカテゴリのチェックボックスを横並びで綺麗な配置する方法を教えてください。
<dt>のジャンルはそのままで、
<dd>の要素だけを横並びにしたいです。
チェックボックスのテキストは3文字や、10文字などを10個くらい入れる予定です。
それが視認しやすく綺麗に横並びで配置できたら嬉しいです。
https://codepen.io/kojiWebCode/pen/QWJzmLV
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
彩いろどり さん
・・・・視認しやすく綺麗に横並びで配置できたら嬉しい・・・・・・
こういう事がしたいのではないですか。↓
--一部色付けしました。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7 …
<style>
@charset "UTF-8";
.search-list {
padding: 50px;
}
.search-list__filter-types {
margin-top: 30px;
display: flex; flex-wrap: wrap;
}
.search-list__filter-name {
font-size: 20px;
font-weight: 700;
}
.search-list__table {
margin-top: 40px;
width: 100%;
table-layout: fixed;
}
.search-list__table th, .search-list__table td {
padding: 10px;
border: 1px solid #ccc;
text-align: center;
}
.search-list__table th {
font-weight: 700;
font-size: 18px;
}
.search-list__table th.sort {
cursor: pointer;
}
.search-list__table th.sort.desc::after {
content: "▼";
margin-left: 10px;
font-size: 16px;
}
.search-list__table th.sort.asc::after {
content: "▲";
margin-left: 10px;
font-size: 16px;
}
dt { width: 100%;
}
dd { background-color: #dfd; margin: 10px 0 0 2%; width: 31%;
}
</style>
</head>
<body>
<div class="search-list" id="js-search-list">
<!-- フィルタリング -->
<dl class="search-list__filter-types">
<!-- <div class="search-list__filter-type"> 削除 -->
<dt class="search-list__filter-name">ジャンル</dt>
<dd class="search-list__filter-data">
<label><input type="checkbox" class="check-box" data-filter="小説">小説</label>
</dd>
<dd class="search-list__filter-data">
<label><input type="checkbox" class="check-box" data-filter="専門書">専門書</label>
</dd>
<dd class="search-list__filter-data">
<label><input type="checkbox" class="check-box" data-filter="漫画">漫画</label>
</dd>
<dd class="search-list__filter-data">
<label><input type="checkbox" class="check-box" data-filter="その他1">その他1</label>
</dd>
<dd class="search-list__filter-data">
<label><input type="checkbox" class="check-box" data-filter="その他2">その他その他2</label>
</dd>
<!-- </div> -->
</dl>
<!-- テーブル -->
<table class="search-list__table">
<thead>
<tr>
<th class="sort" data-sort="title">タイトル</th>
<th class="sort" data-sort="genre">ジャンル</th>
<th class="sort" data-sort="price">価格</th>
<th class="sort" data-sort="release">発売年</th>
</tr>
</thead>
<tbody class="list">
<tr>
<td class="title">天空の彼方へ</td>
<td class="genre">小説</td>
<td class="price" data-price="780">¥780</td>
<td class="release">2018年</td>
</tr>
<tr>
<td class="title">HTML&CSS入門</td>
<td class="genre">専門書</td>
<td class="price" data-price="2980">¥2,980</td>
<td class="release">2018年</td>
</tr>
<tr>
<td class="title">時空の旅人</td>
<td class="genre">漫画</td>
<td class="price" data-price="480">¥480</td>
<td class="release">2021年</td>
</tr>
<tr>
<td class="title">JavaScript入門</td>
<td class="genre">専門書</td>
<td class="price" data-price="4980">¥4,980</td>
<td class="release">2019年</td>
</tr>
<tr>
<td class="title">星屑の詩人</td>
<td class="genre">小説</td>
<td class="price" data-price="1080">¥1,080</td>
<td class="release">2020年</td>
</tr>
</tbody>
</table>
</div>
<script src='https://cdnjs.cloudflare.com/ajax/libs/list.js/2 …
<script>
const options = {
valueNames: [
'title',
'genre',
'release',
//'price'
{ name: 'price', attr: 'data-price' },
],
};
// list.jsのインスタンス生成
const searchList = new List('js-search-list', options);
// チェックボックスの変更を監視
const checkboxes = document.getElementsByClassName('check-box');
for (const checkbox of checkboxes) {
checkbox.addEventListener('change', applyFilters);
}
function applyFilters() {
// 選択されたフィルタの値を取得
const filter = [];
for (const checkbox of checkboxes) {
if (checkbox.checked) {
const value = checkbox.getAttribute('data-filter');
filter.push(value);
}
}
// フィルタを適用してリストを更新
searchList.filter(function (item) {
const itemGenres = item.values().genre;
const filterMatched = filter.length === 0 || filter.some(filterItem => itemGenres.includes(filterItem));
return filterMatched;
});
}
</script>
</body>
</html>
No.3
- 回答日時:
No2です。
連投失礼。
考えてみたら、dd要素をインラインで並べれば良いだけですね。
面倒なことはせずとも、
.search-list__filter-type dd { display: inline-block; }
だけで、すむ話でした。
失礼いたしました。
複数行になった際に、□の位置を揃えることに関しては同様です。
No.2
- 回答日時:
No1です。
項目数が増えた場合(またはブラウザ幅が小さい場合など)には、複数行になってよいものとするなら、dt要素もflexレイアウトのままで可能です。
幅を100%にしておけば1行分の要素幅になるので、結果的に改行されます。
各項目の文字数に応じて、左方に詰めて表示する形式なら以下のような感じでできると思います。
.search-list__filter-type { display: flex; flex-wrap: wrap; }
.search-list__filter-type dt { width: 100%; }
.search-list__filter-type dd {
box-sizing: border-box;
margin: 0; padding-left: 1em;
/* width: 6em; */
}
※ No1にも書きましたが、複数行になった際に、上記だとinputの□の位置は文字数依存なので、ずれることになります。
これを一定位置にしたければ、項目の幅を固定にしておけば良いでしょう。
文字数が多い項目は、幅をその倍数に設定するなどで対応可能です。
ご参考までに。
No.1
- 回答日時:
こんばんは
方法はいろいろありそうですが、以下は一つのアイデアとして・・
親要素のdivに display: flex; でレイアウトするのが簡単だと思います。
それだけだと、dt要素も横並びになってしまうので、dtは position: absolute; にしてフローレイアウトから外して、親divに対して別途レイアウトしておけば宜しいでしょう。
「絶対に1行内で横並び」と言うのであればそのままでも良いですが、項目数が多い場合などで、1項目の幅が2文字程度になると、項目内で改行されるので見にくくなります。
全体で、改行を許可して(flex-wrap: wrap;)項目数が多い場合には、複数行に横並びになるようにしておいた方が見やすいのではないかと思います。
>チェックボックスのテキストは3文字や、10文字などを10個くらい入れる予定~
文字数の差がかなりあるので、複数行になった場合に、そのまま並べるとチェックボックスの位置が必ずしもそろわない可能性があります。
1項目の幅を固定(あるいはその倍数など)に指定しておくなどすれば、チェックボックスの位置を揃えることもできるでしょう。
※ グリッドでレイアウトしても同様のことは可能と思います。
まさにその辺で困ってました!
解決策のご助言ありがとうございます!やってみます!
縦のがチェックボックスの視認性は良いけどスクロールしないと絞り込んだか、わからないので困ってました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- オーラルケア・ホワイトニング・歯科矯正 汚い写真ですみません。 出っ歯を治したくて歯列矯正をしたいんですけど、この出っ歯だとどのくらいの期間 1 2023/04/27 21:29
- HTML・CSS サイトにコンテンツを並べる際の CSS についてアドバイスお願い致します。 5 2024/07/08 21:39
- エステ・脱毛・美容整形 横顔がコンプレックスです。 どこをどうしたら口元綺麗になりますか?口が出て見えます、 歯並びなのか、 2 2023/11/05 16:07
- PowerPoint(パワーポイント) PowerPointでプログラミングの資料を綺麗に作る方法 2 2022/12/03 05:45
- オーラルケア・ホワイトニング・歯科矯正 横から見た時の歯が画像のように、出ています。 歯並びは綺麗と褒めてもらえることの方が、多いのですが、 3 2024/03/23 07:22
- Windows 10 windowsでもmacのフォントのようにぼやけるけど綺麗なフォントで表示する方法を教えてください。 6 2024/02/04 14:35
- 関東 横浜で働きたい 綺麗な街並みで先進的なイメージがある 悪いところあったら教えてほしいです! 市役所勤 5 2023/07/06 19:49
- YouTube youtubeのTOPページの動画紹介画面の並び方を変えたいです。 1 2023/03/18 09:25
- 占い ほくろの占いについて詳しい方教えていただきたいです。 元々全身にホクロが多いですが、今日顔を見たら右 1 2024/05/04 08:37
- ホームページ作成・プログラミング ワードプレスで、画像の横に文字を入れたいです。 「メディアとテキスト」ではなく、普通に段落と画像だけ 1 2023/10/24 13:21
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
これ何て呼びますか
あなたのお住いの地域で、これ、何て呼びますか?
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら「ろうそくの数はあなたが好きな人の数です」と言われ浮気者扱いされたことをいまだに根に持っています。
-
好きな「お肉」は?
牛肉、豚肉、鶏肉、ラム肉、クマやシカの狩猟肉……。 いろ〜んな肉が食べられるようになりましたよね。 あなたがこれまで食べて「これはうまい!」とか「なんじゃこりゃ!」と好きになったお肉を教えてください。
-
HTMLについて教えてください。 WEBサイトの運営を行っているのですが、前任者が飛んでしまい引継ぎ
HTML・CSS
-
テーブルのセルデータを自動改行させずに、はみ出た部分は切り捨てたい
HTML・CSS
-
VBA レジストリの値の読み方について教えてください
Visual Basic(VBA)
-
-
4
時間短縮のために、テキストファイルの入出力をメモリを使って出来ないですか?
Visual Basic(VBA)
-
5
Webサイトのビデオプレーヤーについて
オープンソース
-
6
VBA初心者です。次のVBAコードで、17行目を削除したいのですがうまく動きません 改善策を教えてく
Visual Basic(VBA)
-
7
エクセル タブの下のメニューを選択 実行するコード
Visual Basic(VBA)
-
8
至急助けてください!!!あと2時間しかないです! ボタンを押したら0ランプが点灯し、コンマ5秒後に1
その他(プログラミング・Web制作)
-
9
コードを書いて下さい( ; ; )写真有り
HTML・CSS
-
10
VBA初心者 Ctrl+での操作、ボタンに登録での操作
Visual Basic(VBA)
-
11
mallocについて
C言語・C++・C#
-
12
index.phpに入るには、どうすればいいですか?
PHP
-
13
goo は、放置?
HTML・CSS
-
14
Vba 実数および実数タイプの変数について教えてください
Visual Basic(VBA)
-
15
小学1年生の子です。塾に行かせるのは難しいので、自宅で学べたらと思うのですが、子供にプログラミングを
その他(プログラミング・Web制作)
-
16
正規表現 URL抽出「 [\\/\\b]{0} 」 の意味教えてください。
その他(プログラミング・Web制作)
-
17
先日ウェブデザイン技能検定三級を受けたのですが、公式の解答では答えが②となっているのですがその理由が
HTML・CSS
-
18
WEBサイトの作成で、imgタグには現在もwidthとheightの指定が推奨ですか?
HTML・CSS
-
19
エクセルVBA
Visual Basic(VBA)
-
20
ImageMagickでgif画像の一部が切れないようにしたい
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・ハマっている「お菓子」を教えて!
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
smallにtext-allignが効かない
-
質問1.
-
角丸画像の背景色を透明にした...
-
<object>
-
CSS:overflow要素の印刷について
-
エクセルVBAにてURLの抽出
-
【ヒトの神秘】美男美女から何...
-
input type="hidden"で取得した...
-
含む含まないという概念自体の...
-
<H>タグの見出しと<P>タグの本...
-
HTMLページ上でiframeを最前面...
-
HTMLソースにXHTMLの混在は可能...
-
マージソートの計算量について-...
-
ある要素の中身を全部グレーア...
-
inputタグはformタグで必ず囲む...
-
HTMLで <p>~</p>内で2回以...
-
input type="file"の幅と高さ
-
取消し線に色を付ける
-
html タグの閉じスラッシュ前の...
-
aの中にspan
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【ヒトの神秘】美男美女から何...
-
含む含まないという概念自体の...
-
smallにtext-allignが効かない
-
質問1.
-
「諸要素」とはどういう意味で...
-
NからZへの全単射を具体的に構...
-
現行の日本国憲法の古い所を教...
-
CSSで改行後の行間調整
-
HTMLページ上でiframeを最前面...
-
改行ほどは行かないけど、若干...
-
H1タグを画像にしたい
-
角丸画像の背景色を透明にした...
-
CSS:overflow要素の印刷について
-
テキストボックスの中にリンク...
-
CSSのa:hoverが急に一部だけ効...
-
textareaの幅を画面と合わせたい
-
HTMLでTextareaを横に2つ並べ...
-
CSSのセレクタに指定するbodyと...
-
このサイトのカテゴリのチェッ...
-
input type="hidden"で取得した...
おすすめ情報