HTML - PHP - MySQL - SVG

KERNI's SEITE

Checkbox

Veröffentlicht am


Checkbox erweitert

 

Natürlich kann das ganze auch etwas weiter getrieben werden. Mit CSS kann auch etwas Bewegung ins Spiel gebracht werden.

 

 

Zuerst das HTML Grundgerüst

<label class="tgl"><input checked="checked" type="checkbox" />
  <span class="tgl_body">
    <span class="tgl_switch"></span>
    <span class="tgl_track">
      <span class="tgl_bgd"></span>
      <span class="tgl_bgd tgl_bgd-negative"></span>
    </span>
  </span>
</label>

 

Und das CSS

.tgl {
  position: relative;
  display: inline-block;
  height: 18px;
  cursor: pointer;
}
.tgl > input {
  position: absolute;
  opacity: 0;
  z-index: -1;
  visibility: hidden;
}
.tgl .tgl_body {
  width: 40px;
  height: 18px;
  background: white;
  border: 1px solid #dadde1;
  display: inline-block;
  position: relative;
  border-radius: 9px;
}
.tgl .tgl_switch {
  width: 20px;
  height: 20px;
  display: inline-block;
  background-color: white;
  position: absolute;
  left: -2px;
  top: -2px;
  border-radius: 50%;
  border: 1px solid #ccd0d6;
  -moz-box-shadow: 0 2px 2px rgba(0, 0, 0, 0.13);
  -webkit-box-shadow: 0 2px 2px rgba(0, 0, 0, 0.13);
  box-shadow: 0 2px 2px rgba(0, 0, 0, 0.13);
  -moz-transition: left cubic-bezier(0.34, 1.61, 0.7, 1) 250ms, -moz-transform cubic-bezier(0.34, 1.61, 0.7, 1) 250ms;
  -o-transition: left cubic-bezier(0.34, 1.61, 0.7, 1) 250ms, -o-transform cubic-bezier(0.34, 1.61, 0.7, 1) 250ms;
  -webkit-transition: left cubic-bezier(0.34, 1.61, 0.7, 1), -webkit-transform cubic-bezier(0.34, 1.61, 0.7, 1);
  -webkit-transition-delay: 250ms, 250ms;
  transition: left cubic-bezier(0.34, 1.61, 0.7, 1) 250ms, transform cubic-bezier(0.34, 1.61, 0.7, 1) 250ms;
  z-index: 1;
}
.tgl .tgl_track {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  overflow: hidden;
  border-radius: 8px;
}
.tgl .tgl_bgd {
  position: absolute;
  right: -10px;
  top: 0;
  bottom: 0;
  width: 43px;
  -moz-transition: left cubic-bezier(0.34, 1.61, 0.7, 1) 250ms, right cubic-bezier(0.34, 1.61, 0.7, 1) 250ms;
  -o-transition: left cubic-bezier(0.34, 1.61, 0.7, 1) 250ms, right cubic-bezier(0.34, 1.61, 0.7, 1) 250ms;
  -webkit-transition: left cubic-bezier(0.34, 1.61, 0.7, 1), right cubic-bezier(0.34, 1.61, 0.7, 1);
  -webkit-transition-delay: 250ms, 250ms;
  transition: left cubic-bezier(0.34, 1.61, 0.7, 1) 250ms, right cubic-bezier(0.34, 1.61, 0.7, 1) 250ms;
  background: #43d856 url("data/uploads/checkbox/tgl_check.png") center center no-repeat;
}
.tgl .tgl_bgd-negative {
  right: auto;
  left: -45px;
  background: #ef5113 url("data/uploads/checkbox/tgl_x.png") center center no-repeat;
}
.tgl:hover .tgl_switch {
  border-color: #b5bbc3;
  -moz-transform: scale(1.06);
  -ms-transform: scale(1.06);
  -webkit-transform: scale(1.06);
  transform: scale(1.06);
}
.tgl:active .tgl_switch {
  -moz-transform: scale(0.95);
  -ms-transform: scale(0.95);
  -webkit-transform: scale(0.95);
  transform: scale(0.95);
}
.tgl > :not(:checked) ~ .tgl_body > .tgl_switch {
  left: 22px;
}
.tgl > :not(:checked) ~ .tgl_body .tgl_bgd {
  right: -45px;
}
.tgl > :not(:checked) ~ .tgl_body .tgl_bgd.tgl_bgd-negative {
  right: auto;
  left: -10px;
}
.tgl_text {
	position:relative;
	top: -3px;
	font-family: Vardana, Arial, sans-serif;
}

 

 

Checkbox like a Button

 

Eine Checkbox kann auch wie ein Button aussehen.

 

 

<label class="cb1">
  <input class="icb" type="checkbox" />
  <span class="scb1">Auto</span>
<label>
<label class="cb1">
  <input checked="checked" class="icb" type="checkbox" />
  <span class="scb1">Motorrad</span>
<label>

 

.cb1 {
  display: block;
  font-size: 5em;
  cursor: pointer;
  width: 5em;
}
.icb {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}
.scb1 {
  display: block;
  background-color: #202020;
  background: linear-gradient(0deg, #202020 0%, #505050 50%, #909090 50%, #777777 100%);
  border: 3px solid #000000;
  border-radius: 14px;
  box-shadow: 3px 3px 3px #ababab, 3px 3px 3px #989292 inset;
  text-align: center;
  color: #999;
  margin: 5px;
  padding: 3px;
  transition: background-color .5s, color .5s;
}
.cb1 input:checked ~ .scb1 {
  color: #16e413;
  text-shadow: 0 0 3px #16e413;
}