Сделать чекбоксы в две колонки

203
22 ноября 2021, 04:40

как сделать чекбоксы в две колонки, не используя column-count. И чтобы при нажатии на кнопку More те чекбоксы, которые уже видны оставались на месте, а новые добавлялись снизу. Сейчас при нажатии на кнопку чекбоксы двигаются.

(function() { 
  var items = '.checkboxes__items'; 
  var hidden = '.checkboxes__item-hidden'; 
  var show = 'checkboxes__item'; 
  var btn_more = '.checkboxes__btn-more'; 
 
  $(btn_more).on('click', function() { 
    $(items).find(hidden).each(function() { 
      $(this).removeClass().addClass(show); 
    }); 
    $(this).css('display', 'none'); 
  }); 
})();
.checkboxes { 
  color: #35373B; 
  padding-bottom: 15px; 
} 
 
.checkboxes__title { 
  font-size: 22px; 
  line-height: 29px; 
  margin-bottom: 15px; 
} 
 
.checkboxes__items { 
  column-count: 2; 
  max-width: 330px; 
  width: 100%; 
  margin-bottom: 10px; 
} 
 
.checkboxes__item { 
  display: block; 
  margin-bottom: 20px; 
} 
 
.checkboxes__item-hidden { 
  display: none; 
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 
<div class="checkboxes"> 
  <div class="checkboxes__title">Title</div> 
  <div class="checkboxes__items"> 
    <label class="checkboxes__item"> 
      <input class="checkboxes__input" type="checkbox" value="1" /> 
      <span class="checkbox__label"> 
        Education 
      </span> 
    </label> 
    <label class="checkboxes__item"> 
      <input class="checkboxes__input" type="checkbox" value="1" /> 
      <span class="checkbox__label"> 
        Weapon 
      </span> 
    </label> 
    <label class="checkboxes__item"> 
      <input class="checkboxes__input" type="checkbox" value="1" /> 
      <span class="checkbox__label"> 
        Comics 
      </span> 
    </label> 
    <label class="checkboxes__item"> 
      <input class="checkboxes__input" type="checkbox" value="1" /> 
      <span class="checkbox__label"> 
        Something 
      </span> 
    </label> 
    <label class="checkboxes__item"> 
      <input class="checkboxes__input" type="checkbox" value="1" /> 
      <span class="checkbox__label"> 
        Nation 
      </span> 
    </label> 
 
    <label class="checkboxes__item"> 
      <input class="checkboxes__input" type="checkbox" value="1" /> 
      <span class="checkbox__label"> 
        People 
      </span> 
    </label> 
    <label class="checkboxes__item"> 
      <input class="checkboxes__input" type="checkbox" value="1" /> 
      <span class="checkbox__label"> 
        Future 
      </span> 
    </label> 
    <label class="checkboxes__item"> 
      <input class="checkboxes__input" type="checkbox" value="1" /> 
      <span class="checkbox__label"> 
        History 
      </span> 
    </label> 
    <label class="checkboxes__item-hidden"> 
      <input class="checkboxes__input" type="checkbox" value="1" /> 
      <span class="checkbox__label"> 
        Politic 
      </span> 
    </label> 
    <label class="checkboxes__item-hiddent"> 
      <input class="checkboxes__input" type="checkbox" value="1" /> 
      <span class="checkbox__label"> 
        Economy 
      </span> 
    </label> 
    <label class="checkboxes__item-hidden"> 
      <input class="checkboxes__input" type="checkbox" value="1" /> 
      <span class="checkbox__label"> 
        Activity 
      </span> 
    </label> 
  </div> 
  <button class="checkboxes__btn-more"> 
    + <b>More</b> (<span class="checkboxed__value">Num</span>) 
  </button> 
</div>

Answer 1
.checkboxes {
  color: #35373b;
  padding-bottom: 15px;
}
.checkboxes__title {
  font-size: 22px;
  line-height: 29px;
  margin-bottom: 15px;
}
.checkboxes__items {
  display: flex;
  flex-wrap: wrap;
  max-width: 330px;
  margin-bottom: 10px;
}
.checkboxes__item {
  margin-bottom: 20px;
  width: 50%;
}
.checkboxes__item-hidden {
  display: none;
}
Answer 2

(function() { 
  var items = '.checkboxes__items'; 
  var hidden = '.checkboxes__item-hidden'; 
  var show = 'checkboxes__item'; 
  var btn_more = '.checkboxes__btn-more'; 
 
  $(btn_more).on('click', function() { 
    $(items).find(hidden).each(function() { 
      $(this).removeClass().addClass(show); 
    }); 
    $(this).css('display', 'none'); 
  }); 
})();
.checkboxes { 
  color: #35373B; 
  padding-bottom: 15px; 
} 
 
.checkboxes__title { 
  font-size: 22px; 
  line-height: 29px; 
  margin-bottom: 15px; 
} 
 
.checkboxes__items { 
  /*************************/ 
  display: grid; 
  grid-template-columns: 1fr 1fr; 
  /*************************/ 
  max-width: 330px; 
  width: 100%; 
  margin-bottom: 10px; 
} 
 
.checkboxes__item { 
  display: block; 
  margin-bottom: 20px; 
} 
 
.checkboxes__item-hidden { 
  display: none; 
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 
<div class="checkboxes"> 
  <div class="checkboxes__title">Title</div> 
  <div class="checkboxes__items"> 
    <label class="checkboxes__item"> 
      <input class="checkboxes__input" type="checkbox" value="1" /> 
      <span class="checkbox__label"> 
        Education 
      </span> 
    </label> 
    <label class="checkboxes__item"> 
      <input class="checkboxes__input" type="checkbox" value="1" /> 
      <span class="checkbox__label"> 
        Weapon 
      </span> 
    </label> 
    <label class="checkboxes__item"> 
      <input class="checkboxes__input" type="checkbox" value="1" /> 
      <span class="checkbox__label"> 
        Comics 
      </span> 
    </label> 
    <label class="checkboxes__item"> 
      <input class="checkboxes__input" type="checkbox" value="1" /> 
      <span class="checkbox__label"> 
        Something 
      </span> 
    </label> 
    <label class="checkboxes__item"> 
      <input class="checkboxes__input" type="checkbox" value="1" /> 
      <span class="checkbox__label"> 
        Nation 
      </span> 
    </label> 
 
    <label class="checkboxes__item"> 
      <input class="checkboxes__input" type="checkbox" value="1" /> 
      <span class="checkbox__label"> 
        People 
      </span> 
    </label> 
    <label class="checkboxes__item"> 
      <input class="checkboxes__input" type="checkbox" value="1" /> 
      <span class="checkbox__label"> 
        Future 
      </span> 
    </label> 
    <label class="checkboxes__item"> 
      <input class="checkboxes__input" type="checkbox" value="1" /> 
      <span class="checkbox__label"> 
        History 
      </span> 
    </label> 
    <label class="checkboxes__item-hidden"> 
      <input class="checkboxes__input" type="checkbox" value="1" /> 
      <span class="checkbox__label"> 
        Politic 
      </span> 
    </label> 
    <label class="checkboxes__item-hiddent"> 
      <input class="checkboxes__input" type="checkbox" value="1" /> 
      <span class="checkbox__label"> 
        Economy 
      </span> 
    </label> 
    <label class="checkboxes__item-hidden"> 
      <input class="checkboxes__input" type="checkbox" value="1" /> 
      <span class="checkbox__label"> 
        Activity 
      </span> 
    </label> 
  </div> 
  <button class="checkboxes__btn-more"> 
    + <b>More</b> (<span class="checkboxed__value">Num</span>) 
  </button> 
</div>

READ ALSO
Почему не работает JavaScript в HTML?

Почему не работает JavaScript в HTML?

Не работает вроде бы простой скрипт с сайтом, путь указан верно

287
Конфликт одинаковых css классов

Конфликт одинаковых css классов

такой вопрос, есть bootstrap и bootstrap mdb, в том и том модуле есть класс X, который меня больше устраивает на bootstrap (не mdb), но класс с таким же названием...

224
Аналоги if и switch?

Аналоги if и switch?

У меня есть функция и нужно вычислить её значениеНо загвоздка в том что нельзя использовать операторы if и switch

224