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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML

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

CSS

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

Q&A

1回答

3288閲覧

CSSだけでサイズ可変・スマホ対応のタブレイアウト

HealingSalon104

総合スコア11

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML

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

CSS

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

0グッド

0クリップ

投稿2017/01/12 11:09

###前提
こちらのページを参考にcssのみでタブ切り替えを制作中です。

▼CSSだけでサイズ可変・スマホ対応のタブレイアウト
http://www.webdlab.com/labs/tab-5/

タブは2つのみ必要で、
コードをそのまま使って、数を減らすとそこまではうまくいきます。

###実現したいこと

このコードを変えて実現したいことは以下の通りです。

こちらのタブの部分を、
tab5-1とtab5-2で色を変えたいと思ってます。

例えば
tab5-1は、checked時:red、ホバー時:pink
tab5-2は、checked時:blue、ホバー時:skyblue

など。

上記が不可能であれば、
ホバー時はtab5-1、tab5-2 共有でもかまいません。

###該当のソースコード

[HTML] <div class="tab5"> <div class="tab-content"> <input id="tab5-1" type="radio" name="tab5" checked> <label for="tab5-1">1</label> <input id="tab5-2" type="radio" name="tab5"> <label for="tab5-2">2</label> <div id="tab5-b1"> <p>コンテンツ1</p> </div><!--tab5-b1--> <div id="tab5-b2"> <p>コンテンツ2</p> <p>コンテンツ2</p> </div><!--tab5-b2--> </div><!--tab-content--> </div><!--tab5-->
[CSS] .tab5 { width: 100%;/*横幅はここで設定します。100%にすれば可変になります。*/ min-width: 300px; margin: 0 auto; } .tab5 .tab-content { margin: 0 10px; } .tab5 label { display: inline-block; margin: 0; padding: 0; } .tab5 label { display: inline-block; width: 40px; padding: 3px 10px; cursor: pointer; background: #ddd; color: #777; margin-right: -2px; } .tab5 label:hover { background: #eee; } .tab5 input:checked + label { background: #9fb7d4; color: white; padding: 5px 10px 3px 10px; } .tab5 input { display: none; } .tab5 #tab5-b1, .tab5 #tab5-b2{ display: none; padding: 10px; } .tab5 #tab5-1:checked ~ #tab5-b1, .tab5 #tab5-2:checked ~ #tab5-b2 { display: block; border: 1px solid #9fb7d4; }

class名を振るなどの方法などを検討し、
その他いろいろ調べたのですが、どうしても突破口が見つかりません。

お手数ですが、みなさまのご教授をお待ちしております。
よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

HTMLはできるだけそのままで、CSSをこのように変更するといかがでしょう。

HTML

1<!DOCTYPE html> 2<html> 3<head> 4 <meta charset="utf-8"> 5 <title>タイトル</title> 6 <link rel="stylesheet" href="css1.css"> 7</head> 8<body> 9<div class="tab5"> 10 <div class="tab-content"> 11 <input id="tab5-1" type="radio" name="tab5" checked> 12 <label for="tab5-1">1</label> 13 <input id="tab5-2" type="radio" name="tab5"> 14 <label for="tab5-2">2</label> 15 <div id="tab5-b1"> 16 <p>コンテンツ1</p> 17 </div><!--tab5-b1--> 18 <div id="tab5-b2"> 19 <p>コンテンツ2</p> 20 <p>コンテンツ2</p> 21 </div><!--tab5-b2--> 22 </div><!--tab-content--> 23</div><!--tab5--> 24</body> 25</html>

CSS

1@charset "UTF-8"; 2 3.tab5 { 4 width: 100%; /*横幅はここで設定します。100%にすれば可変になります。*/ 5 min-width: 300px; 6 margin: 0 auto; 7} 8 9.tab5 .tab-content { 10 margin: 0 10px; 11} 12 13.tab5 label { 14 display: inline-block; 15 margin: 0; 16 padding: 0; 17} 18 19.tab5 label { 20 display: inline-block; 21 width: 40px; 22 padding: 3px 10px; 23 cursor: pointer; 24 background: #ddd; 25 color: #777; 26 margin-right: -2px; 27} 28 29/* ここから変更した箇所 */ 30 31.tab5 label[for="tab5-1"]:hover { 32 background: pink; 33} 34 35.tab5 label[for="tab5-2"]:hover { 36 background: skyblue; 37} 38 39#tab5-1:checked + label[for="tab5-1"] { 40 background: red; 41 color: white; 42 padding: 5px 10px 3px 10px; 43} 44 45#tab5-2:checked + label[for="tab5-2"] { 46 background: blue; 47 color: white; 48 padding: 5px 10px 3px 10px; 49} 50 51/* ここまで変更した箇所 */ 52 53.tab5 input { 54 display: none; 55} 56 57.tab5 #tab5-b1, 58.tab5 #tab5-b2 { 59 display: none; 60 padding: 10px; 61} 62 63.tab5 #tab5-1:checked ~ #tab5-b1, 64.tab5 #tab5-2:checked ~ #tab5-b2 { 65 display: block; 66 border: 1px solid #9fb7d4; 67}

投稿2017/01/12 11:24

編集2017/01/12 11:27
s8_chu

総合スコア14731

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問