使用javascript显示/隐藏基于下拉值的div

时间:2015-07-23 13:00:25

标签: html css

我想根据下拉选择值切换2个div,使用CSS

输出javascript
<select class="number" id="number">
    <option value="1" selected="selected">1</option>
    <option value="2">2</option>
</select>
<div id="one">div one</div>
<div id="two">div two</div>

当用户从下拉列表中选择1时,则应显示div 1,当用户从下拉列表中选择2时,应显示div 2.

基本上需要根据下拉值

切换两个div

有人请帮忙。

1 个答案:

答案 0 :(得分:0)

切换div

您可以通过几种不同的方式实现纯CSS的切换(和/或显示/隐藏)方面;这是一个:

* {
  margin:0;
  padding:0;
  font-family:"Helvetica Neue", Helvetica, Sans-serif;
  word-spacing:-2px;
}

h1 {
  font-size:40px;
  font-weight:bold;
  color:#191919;
  -webkit-font-smoothing: antialiased;
}

h2 {
  font-weight:normal;
  font-size:20px;
  color:#888;
  padding:5px 0;
}

.message {
background:#181818;
color:#FFF;
position: absolute;
top: -250px;
left: 0;
width: 100%;
height: 250px;
padding: 20px;
transition: top 300ms cubic-bezier(0.17, 0.04, 0.03, 0.94);
overflow: hidden;
box-sizing: border-box;

}

.message h1 {
  color:#FFF;
}

#toggle {
  position:absolute;
  appearance:none;
  cursor:pointer;
  left:-100%;
  top:-100%;
}

#toggle + label {
  position:absolute;
  cursor:pointer;
  padding:10px;
  background: #26ae90;
width: 100px;
border-radius: 3px;
padding: 8px 10px;
color: #FFF;
line-height:20px;
font-size:12px;
text-align:center;
-webkit-font-smoothing: antialiased;
cursor: pointer;
  margin:20px 50px;
  transition:all 500ms ease;
}
#toggle + label:after {
  content:"Open" 
}

.container {
transition: margin 300ms cubic-bezier(0.17, 0.04, 0.03, 0.94);
  padding:5em 3em;
}

#toggle:checked ~ .message {
  top: 0;
}

#toggle:checked ~ .container {
  margin-top: 250px;
}

#toggle:checked + label {
  background:#dd6149;
}

#toggle:checked + label:after {
  content:"Close"
}

CodePen

&#34;基于下拉值&#34;

关于检测选择然后触发切换(没有JS)的条件。不幸的是,在这个时刻,使用独立的CSS是不可能的,你或任何人想出的任何东西都将是一个黑客,并且比目前的标准更不稳定;我认为最轻的选择是jQuery。看看这个:CSS Equivalent of the "if" statement *

(问题+ 1,我们真的应该继续推动像这样的CSS改进)