Почему виджет группы вк не растягивается на всё доступное пространство
Пишу сайт. Туда нужно внести виджет групп вк. B столкнулся с проблемой, что виджет не расстягивается на всё ему доступное пространство (на скриншоте снизу видно. Новое доступное пространство идет до смены цветов и линий)
Такая структура:
<div class="left-menu">
<div class="left-menu-header">
<div class="left-to-right"></div>
<h4 class="left-menu-header-text">Мы вконтакте</h4>
<div class="right-to-left"></div>
</div>
<div id="vk_groups">
<script type="text/javascript" src="{% static "assets/js/vk-widget.js" %}"></script>
</div>
</div>
Такие стили:
#vk_groups {
padding: 0;
margin: 0 auto;
min-width: 100%;
max-width: 100%;
}
#vk_groups > iframe {
max-width: 100% !important;
}
Вот что в режиме разработчика в браузере:
При этом я заметил, что если отключить width: calc(25%)
то пространство вокруг сжимается до размера виджета.
Вот js код запроса виджета:
function vk_widget() {
VK.Widgets.Group("vk_groups", {
mode: 3,
height: 600,
width: "auto",
no_cover: 1,
color1: "#0D0D0D",
color2: "#ffffff",
color3: "#0b92ad"
}, циферки группы);
}
window.addEventListener("DOMContentLoaded", function () {
vk_widget()
},true)
Скриншот побольше
Стили всей левой колонки
.left-column {
width: 25%;
color: var(--text-color);
background-color: var(--left-menu-color);
filter: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.25));
padding-top: 10px;
border-top-left-radius: 10px;
}
@media (max-width: 800px) {
.left-column {
display: none;
}
}
.left-menu > h4 {
font-size: 1.5vw;
text-align: center;
text-transform: uppercase;
margin-top: 3vh;
color: #979797 ;
border: 1px solid #303030;
border-right-color: transparent;
border-left-color: transparent;
padding: 15px;
font-family: "Montserrat", sans-serif;
font-weight: bold;
font-style: normal;
font-optical-sizing: auto;
}
.left-menu-header-text {
text-transform: uppercase;
color: var(--text-color2);
font-weight: bold;
margin: 0;
}
.left-menu-header {
display: flex;
justify-content: space-between;
align-items: center;
}
.left-to-right, .right-to-left {
flex-grow: 1;
flex-shrink: 0;
height: 0.7svh;
}
.left-to-right {
background: linear-gradient(90deg, #303030 0%, rgba(47.81, 47.81, 47.81, 0) 100%);
}
.right-to-left {
background: linear-gradient(270deg, #303030 0%, rgba(47.81, 47.81, 47.81, 0) 100%);
}
h1 {
overflow: hidden;
text-align: center;
}
h1::before,
h1::after {
background-color: #000;
content: "";
display: inline-block;
height: 1px;
position: relative;
vertical-align: middle;
width: 50%;
}
h1::before {
right: 0.5em;
margin-left: -50%;
}
h1::after {
left: 0.5em;
margin-right: -50%;
}
#vk_groups {
padding: 0;
margin: 0 auto;
min-width: 100%;
max-width: 100%;
}
#vk_groups > iframe {
max-width: 100% !important;
}
Скриншот блока в режим разработки. Он растянут на всё доступное пространство. Однако вк виджет не расстягивается.
Ответы (1 шт):
Решение оказалось достаточно необычным. В проблеме была виновата функция
window.addEventListener("DOMContentLoaded", function () {
vk_widget()
},true)
Вероятно из-за того, что страница не успевала полностью прогрузить контент, блок создавался на меньший объем.
Рабочий код:
function vk_widget() {
VK.Widgets.Group("vk_groups", {
mode: 3,
height: 600,
width: "auto",
no_cover: 1,
color1: "#0D0D0D",
color2: "#ffffff",
color3: "#0b92ad"
}, 222879328);
}
vk_widget()
Теперь всё хорошо функционирует