<style>
div.container
{
display: flex;
flex-wrap: wrap;
width: 770px;
height: 90px;
background-color: green;
overflow: hidden;
}
div.container > div
{
width: 60px;
height: 25px;
background-color: #df1245;
text-align: center;
margin: 5px;
padding: 5px 0;
}
div.container > div:nth-child(n + 22) /*этим селекторам задаем свойство сортировки элементам, которые идут после кнопки "показать еще" если контейнер будет адаптивным, придется прописывать кучу вариантов nth-child */
{
order: 2;
}
div.container > label.more
{
display: block;
width: 130px;
height: 25px;
margin: 5px;
padding: 5px 0;
text-align: center;
order: 1; /* У кнопки стоит такой индекс сортировки чтобы оказаться между видимыми и невидимыми элементами */
background-color: #78d412;
}
div.container label.more span.less
{
display: none;
}
#show-more-state
{
display: none;
}
#show-more-state:checked ~ div.container
{
height: auto;
}
#show-more-state:checked ~ div.container label.more
{
order: 3;
margin-left: auto;
}
#show-more-state:checked ~ div.container label.more span.more
{
display: none;
}
#show-more-state:checked ~ div.container label.more span.less
{
display: initial;
}
</style>
<input id="show-more-state" type="checkbox"/> <!-- Этим чекбоксом запонимаем состояние кнопки, чтобы можно было оттолкнуться стилями от превдокласса :checked -->
<div class="container">
<label class="more" for="show-more-state"><span class="more">ПОКАЗАТЬ ЕЩЕ</span><span class="less">СВЕРНУТЬ</span></label>
<div>ITEM</div>
<div>ITEM</div>
<div>ITEM</div>
<div>ITEM</div>
<div>ITEM</div>
<div>ITEM</div>
<div>ITEM</div>
<div>ITEM</div>
<div>ITEM</div>
<div>ITEM</div>
<div>ITEM</div>
<div>ITEM</div>
<div>ITEM</div>
<div>ITEM</div>
<div>ITEM</div>
<div>ITEM</div>
<div>ITEM</div>
<div>ITEM</div>
<div>ITEM</div>
<div>ITEM</div>
<div>ITEM</div>
<div>ITEM</div>
<div>ITEM</div>
<div>ITEM</div>
<div>ITEM</div>
<div>ITEM</div>
<div>ITEM</div>
</div>
document.styleSheets[i].rules[j].selectorText
document.styleSheets[i].rules[j].style['имя_свойства'] = значение_свойства;
</li><!-- тут символ переноса строки, вносит свою лепту как текстовая нода, имеющая небольшие, но геометрические размеры -->
<li class="modules-card layout">
$('select').val(chooseItem).attr('selected', 'selected');
$('select option[selected]').removeAttr('selected'); // удаление ранее установленного selected атрибута у одного из option
$('select option[value="' + chooseItem + '"]').attr('selected', 'selected'); // находим option с нужным value и устанавливаем атрибут selected
div.top-left-container input[type="checkbox"]:checked ~ div.menu
{
/*анимация появления меню*/
}
div.top-left-container input[type="checkbox"]:not(:checked) ~ div.menu
{
/*анимация скрытия меню*/
}
table.white_border,
table.white_border th,
table.white_border td
{
border-color: ваш цвет;
}
html, body
{
margin: 0;
padding: 0;
}
Если лейбл нужно скрыть, расположите его перед полем, используйте привязку атрибута for и специальный класс для вспомогательных технологий:
.visually-hidden {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
border: 0;
padding: 0;
clip: rect(0 0 0 0);
overflow: hidden;
}
Этот класс скрывает лейбл визуально, но его прочтут скринридеры. Обратите внимание, что скринридеры и другие вспомогательные технологии, как и браузеры, скрывают элементы с использованием display: none и visibility: hidden.