首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将div设置为复选框

如何将div设置为复选框
EN

Stack Overflow用户
提问于 2016-01-20 23:01:45
回答 3查看 1.4K关注 0票数 4

我最近开始编写代码,我想知道将一个框变成复选框的最佳方法。因此,我想要建立一个网站,用户可以选择颜色,通过检查颜色框,以选择他们想要的。我已经研究过了,但找不到好的答案。所有的框应该是可点击的,因为用户可以选择多个颜色。

编辑,我很抱歉,如果我没有道理!我想做的是这样的事情:Sv.tinypic.com/r/dcelb6 6/9。所以盒子是彩色的,你可以检查它们。

这是我的html:

代码语言:javascript
复制
<div>
          <a href="#" class="color-box black-box" value="0">
            <h3>Black</h3>
          </a>
        </div>
        <div>
          <a href="#" class="color-box grey-box" value="0">
            <h3>Grey</h3>
          </a>
        </div>
        <div>
          <a href="#" class="color-box blue-box" value="0">
            <h3>Blue</h3>
          </a>
        </div>

</div>

下面是CSS:

代码语言:javascript
复制
.color-box {
  width: 15.20833%;
  min-width: 15.20833%;
  height: 0;
  padding-bottom: 15.20833%;
  background-color: #fff;
  margin-top: 0.72917%;
  display: block;
  float: left;
  position: relative;
  margin: 7px 0.72917%;
  border: 1px solid transparent;
}

.color-box h3 {
  color: #fff;
  text-decoration: none;
}

.black-box {
  background: #000;
}

.grey-box {
  background: #9E9E9E;
}

.blue-box {
  background: #205DB1;
}
EN

回答 3

Stack Overflow用户

发布于 2016-01-21 00:18:22

用户可以选择、colors、,方法是检查彩色框来选择他们想要的颜色。

这里的片段

代码语言:javascript
复制
colors={'black-box':'black','grey-box':'grey','blue-box':'blue'}
var elements=document.getElementsByClassName('color-box')
function handler(el){
el[i].addEventListener('click',
function(e){
	if(e.target.className.split(' ')[1] in colors){
		document.getElementById('selector').style.background= 			colors[e.target.className.split(' ')[1]]
    }
   for(var i=0;i<elements.length;++i){
    if(elements[i]!=e.target){elements[i].innerHTML=''}
    }
e.target.innerHTML=='✓'?e.target.innerHTML='':e.target.innerHTML='✓';
},false)
}
for(var i=0;i<elements.length;++i){
handler(elements)
}

//document.getElementsByClassName('color-box').forEach(handler)
代码语言:javascript
复制
.color-box {
  color:white;
  font-size:20px;
  width:30px;
  height:30px;

  background-color: #fff;
  margin-top: 0.72917%;
  display: block;
  text-align:center;
  position: relative;
  border: 1px solid transparent;
}

.black-box {
  background: #000;
}

.grey-box {
  background: #9E9E9E;
}

.blue-box {
  background: #205DB1;
}
#selector{
  width:200px;
  height:200px;
  border:solid;
}
代码语言:javascript
复制
<div class="color-box black-box" >
        </div>
        <div class="color-box grey-box">
        </div>
        <div class="color-box blue-box">
        </div>
</div>
<div id='selector'>
</div>

票数 4
EN

Stack Overflow用户

发布于 2016-01-20 23:14:06

这是一个关于如何在没有JS https://plnkr.co/edit/tvamZjENZSLWnrtthDHP?p=preview的情况下实现它的基本示例。

代码语言:javascript
复制
<style>
.checkbox > input[type="checkbox"] {  display: none; }
.checkbox > input[type="checkbox"]:checked + label:before {margin-right: 10px; content: "[X]";}
.checkbox > input[type="checkbox"] + label:before {margin-right: 10px; content: "[ ]";}
</style>


<div class="checkbox">
  <input type="checkbox" id="test">
  <label for="test">HELLO</label>
</div>

注意,我使用>来指示.checkbox元素的直接复选框元素后代,以及用于获取该输入的下一个LABEL元素的+选择器

票数 2
EN

Stack Overflow用户

发布于 2016-01-21 00:48:27

这是一个纯CSS,使用带有label颜色的“隐藏”label集。

JS Fiddle

代码语言:javascript
复制
.radios{
  display:none;
}
.color-box {
  width: 50px;
  line-height: 50px;
  margin-top: 0.72917%;
  display: inline-block;
  margin: 7px 0.72917%;
  color: #fff;
  text-align:center;
  text-decoration: none;
  border: 1px solid transparent;
}
.black-box {
  background: #000;
}
.grey-box {
  background: #9E9E9E;
}
.blue-box {
  background: #205DB1;
}
.radios:checked + label{
  text-decoration:underline;
}
#rad1:checked ~ #result{
  background-color:black;
}
#rad2:checked ~ #result{
  background-color:#9E9E9E;
}
#rad3:checked ~ #result{
  background-color:#205DB1;
}
#result{
  width:200px;
  height:200px;
  border:2px orange solid;
}
代码语言:javascript
复制
<div>
  <input type="radio" id="rad1" name="rad" class="radios">
  <label for="rad1" class="color-box black-box">Black</label>

  <input type="radio" id="rad2" name="rad" class="radios">
  <label for="rad2" class="color-box grey-box">Grey</label>

  <input type="radio" id="rad3" name="rad" class="radios">
  <label for="rad3" class="color-box blue-box">Blue</label>

  <hr>
  <div id="result"></div>
</div>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34912315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档