
タブがオンになった時、
そのオンになったタブの下線部分だけを消したいのですが、
良い方法ありますか ?
教えてください。
よろしくお願いします。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
/*
Tabs
*/
/*//////////////////////////////////////////////
// タブ切り替え
//////////////////////////////////////////////*/
/* ノーマライズ */
ul {
list-style-type: none;
margin-block-start: 0;
margin-block-end: 0;
padding-inline-start: 0;
}
/* タブ切り替えを制御するラジオボタンを非表示 */
.tab-btn {
display:none;
}
.tab-list-wrap {
/* タブ切り替えボタンを横並び */
display:flex;
}
.tab-list {
box-sizing: border-box;
display: block;
width: 150px;
color: rgba(var(--color-b), 1.0);
font-weight: 700;
text-align:center;
margin-inline-start: 5px;
padding-block-start: 7px;
padding-block-end: 7px;
border-top: 1px solid #dddddd;
border-left: 1px solid #dddddd;
border-right: 1px solid #dddddd;
border-radius: 4px 4px 0 0;
background-image: linear-gradient(
0deg,
rgba(238, 238, 238, 0.5),
rgba(255, 255, 255, 1.0)
);
cursor:pointer;
}
/* ボタンにチェックが入った時の色 */
#tab-btn1:checked ~ .tab-list-wrap #tab-list1,
#tab-btn2:checked ~ .tab-list-wrap #tab-list2,
#tab-btn3:checked ~ .tab-list-wrap #tab-list3,
#tab-btn4:checked ~ .tab-list-wrap #tab-list4 {
background: rgba(255, 255, 255, 1.0);
}
/*初期状態を非表示に*/
.tab-content {
display: none;
/* box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 1.0); */
border: solid 1px #dddddd;
}
/* 対応するボタンにチェックが入ったときに表示 */
#tab-btn1:checked ~ .tab-content-wrap #tab-content1,
#tab-btn2:checked ~ .tab-content-wrap #tab-content2,
#tab-btn3:checked ~ .tab-content-wrap #tab-content3,
#tab-btn4:checked ~ .tab-content-wrap #tab-content4 {
display: block;
}
</style>
</head>
<body>
<input id="tab-btn1" class="tab-btn" name="tab" type="radio" checked>
<input id="tab-btn2" class="tab-btn" name="tab" type="radio">
<input id="tab-btn3" class="tab-btn" name="tab" type="radio">
<input id="tab-btn4" class="tab-btn" name="tab" type="radio">
<ul class="tab-list-wrap">
<li><label id="tab-list1" class="tab-list" for="tab-btn1">タブ 01</label></li>
<li><label id="tab-list2" class="tab-list" for="tab-btn2">タブ 02</label></li>
<li><label id="tab-list3" class="tab-list" for="tab-btn3">タブ 03</label></li>
<li><label id="tab-list4" class="tab-list" for="tab-btn4">タブ 04</label></li>
</ul>
<div class="tab-content-wrap">
<div id="tab-content1" class="tab-content">
<span>タブ 01</span>
</div>
<div id="tab-content2" class="tab-content">
<span>タブ 02</span>
</div>
<div id="tab-content3" class="tab-content">
<span>タブ 03</span>
</div>
<div id="tab-content4" class="tab-content">
<span>タブ 04</span>
</div>
</div>
</body>
</html>
No.1ベストアンサー
- 回答日時:
こんにちは
意図的なのかどうか不明ですが、タブ側のボーダーの色が、グラデーションの最下部の色とほぼ同じなので、通常時は下線があるように表示され、選択時は消える様な表示になっています。
ですので、コンテンツ側の上線を消せば良いのですが、部分的に消すことは難しいですね。
方法として簡単に思いつくのは以下でしょうか。
1)::afterなどで、タブと同じ幅の白色のブロック要素を枠線に重ねる。
2)コンテンツ全体を上にずらして、タブのブロックと重ねるようにする。
以下は、2)の方法での例です。
枠線の太さ分(=1px)上げればよいので、
.tab-content-wrap {
margin-top: -1px;
}
を追加してみるのではいかがでしょうか?
※ 全体のCSSの構成を変えると、コンテンツが手前側に表示される場合がありますので、その際は z-index で制御してください。
※ ご提示のCSSでは、変数 --color-b が定義されていないようですが、直接には関係が無いので無視しました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
- HTML・CSS HTML & CSS 縦ボックス内の文字の左右センタリング 3 2023/03/25 04:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スタイルシート(CSS)で、高さ...
-
オンマウス&スクロール
-
2つのDIVを中央と右に横並びに...
-
YES or NO形式で進んで行く、タ...
-
背景を四隅に固定する
-
ポップアップ中に動くカウント...
-
Webサイト作成 プログレスバー ...
-
クリックするたびに違う文を表示
-
フッターの下に隙間ができてしまう
-
ラジオボタンで段階評価
-
ホームページのsidebar とconte...
-
離れた場所にマウスオーバーで...
-
CSSで背景を下までのばすには?
-
<Div>の中の要素の数を調べる
-
JavaScriptでの画像切り替えを...
-
c++std::string型をTCHARに変換...
-
複数画像のランダム複数表示(...
-
Javascriptで指定した日付と時...
-
jQueryでクリックされた要素のi...
-
Javascriptで画像を水面のよう...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSS <div>の入れ子が反映さ...
-
Ctrl+F(検索)の窓を出したいの...
-
離れた場所にマウスオーバーで...
-
スタイルシートで画面を上下に...
-
フッター上部に謎の隙間
-
スライダーの枠に動画を収める...
-
【CSS】floatで左右に並べた...
-
リンクで違うページの指定箇所...
-
【html5】canvasでの文字の形の...
-
CSSで背景を下までのばすには?
-
Flickity で画像にリンクを貼る...
-
スクロール可能なチェックボックス
-
文字をクリックしたら別の文字...
-
文字を固定したいのですが…
-
[CSS] 常にフッターは下部に表...
-
IE6 で余分な border が表示さ...
-
スタイルシートで位置固定する...
-
枠がスクロールさせると消える
-
IEだけfloatがずれてしまう
-
clear: bothの事で質問です。
おすすめ情報