У меня возникла проблема с масштабированием моих изображений svg. На самом деле, я создаю дизайн для html-карточной игры.CSS Масштабирование svg с использованием flexbox
Вот картинка из окна:
масштабирования правильно, потому что есть достаточно мест в обоих направлениях, так что SVG заполняет пространство.
Но когда я буду изменять размер окна, а ширина становится все меньше и меньше, что-то подобное происходит:
Таким образом, масштабирование самого изображения SVG правильно, но HTML/CSS считает, что изображение является частью внутри отображаемых пограничных линий. Я просто взял изображение с помощью drag'n'drop, чтобы визуализировать проблему.
HTML: (только часть, вот последняя строка)
<div id="playerRow">
<img id="playerCard2"/>
<img id="playerCard3"/>
<img id="playerCard4"/>
<img id="playerCard5"/>
</div>
CSS:
#playerRow{
display:flex;
flex-direction:row;
justify-content: center;
align-items: center;
background-color: forestgreen;
border-style: solid;
border-radius: 20px;
height: 45%;
}
#playerCard1, #playerCard2, #playerCard3, #playerCard4, #playerCard5 {
min-width:0px;
min-height:0px;
height:90%;
margin:1vh;
border-style: dashed;
border-color: #555555;
border-radius: 15px;
}
Я совершенно уверен, что есть ошибка с высотой. Потому что, когда я устанавливаю высоту с 90% до 40%, она выглядит лучше для измененного размера окна с низкой шириной. Я попытался использовать максимальную высоту вместо высоты, но это не имеет никакого значения.
В чем может быть проблема? Я просто хочу масштабировать граничные рамки до размера изображения. Я также попытался использовать javascript как перемасштабирование, но проблема в том, что я не могу получить высоту svg, это всегда занимает целую часть. Кроме того, я также хочу знать, можно ли решить эту проблему только в CSS.
EDIT: Последняя строка с отношением CSS трюк:
Спасибо! Я пробовал этот трюк, он работает, поэтому соотношение правильное, но проблема в том, что я использую абсолютный позиционированный стиль, а это означает, что когда ширина> высота (разрешение окна), контейнеры отношения начинают перекрывать верхние/нижние границы. Я поставил следующий скриншот проблемы на мой вопрос. Как я мог избежать этой проблемы? Я уже пробовал устанавливать высоту, но потом он ломает трюк отношения, max-height также не работает, потому что я думаю, что padding-top не считается высотой. – mathew11
Не видя свою фактическую страницу и CSS, я мог только делать дикие догадки. Я думаю, вам нужно будет разместить его где-нибудь. –
Я воспроизвел свою проблему на jsFiddle. [JSFiddle] (https://jsfiddle.net/mathew11/q0pczdua/8/). Просто попробуйте изменить размер окна. Все карты должны оставаться в своем ряду, ширина в порядке, но высота неправильная. (Перекрытие границ) – mathew11