この人頭いいなと思ったエピソード

下記のコードでは「理解できた」ボタンをクリックすると「終了済」ボタンに変化するようになっています。この「終了済」ボタンの色を変え、終わった感じを出すにはどのようにすれば良いでしょうか。
恐れ入りますがよろしくお願い致します。


<!DOCTYPE HTML>
<html lang="ja">
<head><title>Sample</title>
<style>
#progress { width: 18em; }
#progress p { margin: 0.5em 1em; padding: 0; }
#progress p button { width:8em; margin-left: 2em; }

#progress .slid_wrap { margin: 1em 0 1em 1em; position: relative; }
#progress .slid_wrap input { width: 11em; }
#progress .slid_wrap span { font-size: .8em; font-weight: bold; }
#progress .slid_wrap .cover {
position: absolute; top: 0; left: 0;
width: 100%; height: 100%;
}
</style>

<script>
window.addEventListener('DOMContentLoaded', ()=>{
let p = document.getElementById('progress');
p.querySelector('fieldset').addEventListener('click', (e)=>{
let n, t = e.target;
if(e.target.nodeName != 'BUTTON') return;
t.textContent = t.value?'理解できた':'終了済';
t.value = t.value?'':'done';
n = p.querySelectorAll('button[value="done"]').length * 20;
p.querySelector('.slid_wrap input').value = n;
p.querySelector('.slid_wrap span').textContent = n + '%';
});
});

</script>
</head>
<body>
<div id="progress">
<div class="slid_wrap">
<label>理解度:</label>
<input type="range" min="0" max="100" value="0" />
<span>0%</span>
<div class="cover"></div>
</div>
<fieldset>
<legend>理解状況チェック</legend>
<p>第1章:<button type="button">理解できた</button></p>
<p>第2章:<button type="button">理解できた</button></p>
<p>第3章:<button type="button">理解できた</button></p>
<p>第4章:<button type="button">理解できた</button></p>
<p>第5章:<button type="button">理解できた</button></p>
</fieldset>
</div>
</body>
</html>

A 回答 (1件)

前回回答者です。


(締め切られちゃったので、回答できませんでした)

>ボタンの色を変え、終わった感じを出すにはどのようにすれば良いでしょうか。
CSSで制御すればよいです。
クラス設定をするようにした方が制御はしやすいですが、設定してはいないので、そのままやるなら・・・

#progress p button[value="done"] { background-color:#BBB; color:#EEE; }

といったものをCSSに追加すれば可能です。
「終わった感じを出す」のがどのような色合いなのかは知りませんので、お好みに調整して下さい。
    • good
    • 0
この回答へのお礼

回答締め切ってしまいすみませんでした。
ありがとうございます、うまくできました!
有料級のご回答本当にありがとうございました!!

お礼日時:2021/01/02 18:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報