使用div作为单选按钮

时间:2015-10-04 15:59:24

标签: html css

如何使用div作为单选按钮?

我的意思是:

  • 您可以选择div,然后选择蓝色边框
  • 您只能选择其中一个

3 个答案:

答案 0 :(得分:12)

如果你想要一个仅CSS 解决方案,这是一个很好的解决方案:

.labl {
    display : block;
    width: 400px;
}
.labl > input{ /* HIDE RADIO */
    visibility: hidden; /* Makes input not-clickable */
    position: absolute; /* Remove input from document flow */
}
.labl > input + div{ /* DIV STYLES */
    cursor:pointer;
    border:2px solid transparent;
}
.labl > input:checked + div{ /* (RADIO CHECKED) DIV STYLES */
    background-color: #ffd6bb;
    border: 1px solid #ff6600;
}
<label class="labl">
    <input type="radio" name="radioname" value="one_value" checked="checked"/>
    <div>Small</div>
</label>
<label class="labl">
    <input type="radio" name="radioname" value="another" />
    <div>Small</div>
</label>

受此answer启发

答案 1 :(得分:7)

是的,您可以使用&#39; div&#39;作为单选按钮,将作为单选按钮组。但为此你需要Javascript。我使用JQuery为它创建了一个脚本。这是源 -

&#13;
&#13;
$('.radio-group .radio').click(function(){
    $(this).parent().find('.radio').removeClass('selected');
    $(this).addClass('selected');
    var val = $(this).attr('data-value');
    //alert(val);
    $(this).parent().find('input').val(val);
});
&#13;
.radio-group{
    position: relative;
}

.radio{
    display:inline-block;
    width:15px;
    height: 15px;
    border-radius: 100%;
    background-color:lightblue;
    border: 2px solid lightblue;
    cursor:pointer;
    margin: 2px 0; 
}

.radio.selected{
    border-color: blue;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<h2>Select an option (You will get it's value displayed in the text input field!)</h2>
<form method="post" action="send.php">
  <div class="radio-group">
      <div class='radio' data-value="One"></div>1
      <div class='radio' data-value="Two"></div>2
      <div class='radio' data-value="Three"></div>3
      <br/>
      <input type="text" id="radio-value" name="radio-value" />
  </div>
  
</form>
&#13;
&#13;
&#13;

答案 2 :(得分:2)

这是一个简单的解决方案。

HTML

<div class="option first">1</div>
<div class="option second">2</div>
<div class="option third">3</div>
<div class="option fourth">4</div>

CSS

.option
{
    background-color:red;
    margin: 10px auto;
}

.option.active
{
    border:1px solid blue;
}

Jquery的

$(document).ready(
function()
    {
        $(".option").click(
            function(event)
        {
            $(this).addClass("active").siblings().removeClass("active");
        }
        );
    });

link