menu
menu

キーワード検索

 

最近の投稿

CSSだけでブロック要素の表示非表示

  • Labs

CSS3

こんにちは(・∀・)

CSSだけで作ってみましたシリーズです。今回はCSSだけでブロック要素の表示非表示です。

1. チェックボックスで要素の表示非表示(トグルボタンの)のサンプル

サンプル
HTML

<div class="container">
<div class="top">
<p>listen,<br>
overlook,<br>
voice,<br>
effort.</p>
</div>
<label for="btn">≫</label>
<input id="btn" type="checkbox">
<div class="btm">
<p>相手のいいたいことをきいてあげようという思いやり。<br>
相手の悪いところを大目にみてあげようという寛大さ。<br>
自分の気持ちや心を言葉で表すこと。<br>
あきらめずお互いに努力すること。</p>
</div>
<br>
<div class="top">
<p>listen, overlook, voice, effort. listen, overlook, voice, effort.</p>
</div>
<label for="btn2" class="btn2">≫</label>
<input id="btn2" type="checkbox">
<div class="btm">
<p>相手のいいたいことをきいてあげようという思いやり。相手の悪いところを大目にみてあげようという寛大さ。自分の気持ちや心を言葉で表すこと。あきらめずお互いに努力すること。相手のいいたいことをきいてあげようという思いやり。相手の悪いところを大目にみてあげようという寛大さ。自分の気持ちや心を言葉で表すこと。あきらめずお互いに努力すること。</p>
</div>
<!--container--></div>
CSS

.container {
  margin: 0 auto;
  text-align: left;
}
.container input {
  display: none;
}
.container label {
  color: #4776AF;
  cursor: pointer;
  padding: 0 10px;
}
.container label:hover {
  color: #ccc;
}
.container .top {
  padding: 10px;
  background: #fff;
}
.container .btm {
  transition: 0.2s;
  height: 0;
  overflow: hidden;
  padding: 0 10px;
}
.container .btn {
  text-align: left;
  display: block;
  width: 80px;
  margin: 0;
}
.container .btn2 {
  text-align: center;
  display: block;
  width: 80px;
  margin: 0 auto;
}
.container input:checked + .btm {
  height: auto;
  padding: 0 10px 10px 10px;
  background: #fff;
}
Result

サンプルデモはこちら

2-1. ラジオボタンで要素の表示非表示サンプル

サンプル
HTML

<div class="container">
<div class="top">
<p><p>listen,<br>
overlook,<br>
voice,<br>
effort.</p></p>
</div>
<label for="topbtn" class="topbtn">More ≫</label>
<input id="topbtn" type="radio" name="oo">
<div class="btm">
<p>相手のいいたいことをきいてあげようという思いやり。<br>
相手の悪いところを大目にみてあげようという寛大さ。<br>
自分の気持ちや心を言葉で表すこと。<br>
あきらめずお互いに努力すること。</p>
<label for="btmbtn" class="btmbtn">≪ Close</label>
<input id="btmbtn" type="radio" name="oo">
</div>
<br>
<div class="top">
<p><p>listen, overlook, voice, effort. listen, overlook, voice, effort.</p></p>
</div>
<label for="topbtn2" class="topbtn2">More ≫</label>
<input id="topbtn2" type="radio" name="oo2">
<div class="btm">
<p>相手のいいたいことをきいてあげようという思いやり。相手の悪いところを大目にみてあげようという寛大さ。自分の気持ちや心を言葉で表すこと。あきらめずお互いに努力すること。相手のいいたいことをきいてあげようという思いやり。相手の悪いところを大目にみてあげようという寛大さ。自分の気持ちや心を言葉で表すこと。あきらめずお互いに努力すること。</p>
<label for="btmbtn2" class="btmbtn2">≪ Close</label>
<input id="btmbtn2" type="radio" name="oo2">
</div>
<!--container--></div>
CSS

.container {
  margin: 0 auto;
  text-align: left;
}
.container input {
  display: none;
}
.container label {
  color: #4776AF;
  cursor: pointer;
  padding: 0 10px;
}
.container label:hover {
  color: #ccc;
}
.container .top {
  padding: 10px;
  background: #fff;
}
.container .btm {
  transition: 0.2s;
  height: 0;
  overflow: hidden;
  padding: 0 10px;
}
.container .topbtn,
.container .btmbtn {
  text-align: left;
  display: block;
  width: 80px;
  margin: 0;
}
.container .topbtn2,
.container .btmbtn2 {
  text-align: center;
  display: block;
  width: 80px;
  margin: 0 auto;
}
.container input:checked + .btm {
  height: auto;
  padding: 0 10px 10px 10px;
  background: #fff;
}
Result

サンプルデモはこちら

2-2. ラジオボタンで要素の表示非表示サンプル

サンプル
HTML

<div class="container">
<div class="top">
<p>listen,<br>
overlook,<br>
voice,<br>
effort.</p>
</div>
<label for="topbtn" class="topbtn">More ≫</label>
<input id="topbtn" type="radio" name="oo">
<div class="btm">
<p>相手のいいたいことをきいてあげようという思いやり。<br>
相手の悪いところを大目にみてあげようという寛大さ。<br>
自分の気持ちや心を言葉で表すこと。<br>
あきらめずお互いに努力すること。</p>
<label for="btmbtn" class="btmbtn">≪ Close</label>
<input id="btmbtn" type="radio" name="oo">
</div>
<br>
<div class="top">
<p>listen, overlook, voice, effort. listen, overlook, voice, effort.</p>
</div>
<label for="topbtn2" class="topbtn2">More ≫</label>
<input id="topbtn2" type="radio" name="oo2">
<div class="btm">
<p>相手のいいたいことをきいてあげようという思いやり。相手の悪いところを大目にみてあげようという寛大さ。自分の気持ちや心を言葉で表すこと。あきらめずお互いに努力すること。相手のいいたいことをきいてあげようという思いやり。相手の悪いところを大目にみてあげようという寛大さ。自分の気持ちや心を言葉で表すこと。あきらめずお互いに努力すること。</p>
<label for="btmbtn2" class="btmbtn2">≪ Close</label>
<input id="btmbtn2" type="radio" name="oo2">
</div>
<!--container--></div>
CSS

.container {
  margin: 0 auto;
  text-align: left;
}
.container input {
  display: none;
}
.container label {
  color: #4776AF;
  cursor: pointer;
  padding: 0 10px;
}
.container label:hover {
  color: #ccc;
}
.container .top {
  padding: 10px;
  background: #fff;
}
.container .btm {
  height: 0;
  overflow: hidden;
  padding: 0 10px;
}
.container .topbtn,
.container .btmbtn {
  text-align: left;
  display: block;
  width: 80px;
  margin: 0;
}
.container .topbtn2,
.container .btmbtn2 {
  text-align: center;
  display: block;
  width: 80px;
  margin: 0 auto;
}
.container input:checked + .btm {
  margin-top: -36px;
  height: auto;
  padding: 0 10px 10px 10px;
  background: #fff;
  position: relative;
  z-index: 2;
}
Result

サンプルデモはこちら

関連リンク

jQueryで要素の表示非表示
JavaScriptで要素の表示非表示

  • カテゴリー:Labs