Как сделать SVG-изображение адаптивным, чтобы оно масштабировалось вместе с изменением размеров окна браузера?

Как убрать блок, создаваемый SVG, чтобы обеспечить адаптивность изображения на основе класса img-fluid при использовании тега <use>? Необходимо сделать SVG адаптивным и убрать лишний блок. Пример и исходный код доступны по ссылкам.
  • 23 мая 2024 г. 12:31
Ответы на вопрос 1
Для того чтобы сделать SVG-изображение адаптивным и масштабировать его вместе с изменением размеров окна браузера, можно использовать следующие подходы:

1. Использовать внешний CSS для задания ширины и высоты SVG:
```css
img.svg {
  width: 100%;
  height: auto;
}
```

2. Вставить SVG-изображение непосредственно в HTML и задать CSS для него:
```html
<svg class="svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <circle cx="12" cy="12" r="10"></circle>
</svg>

<style>
.svg {
  width: 100%;
  height: auto;
}
</style>
```

Чтобы убрать лишний блок, создаваемый SVG, при использовании тега `<use>`, можно использовать следующий код:

HTML:
```html
<svg class="svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
  <use xlink:href="#icon"></use>
</svg>
```

SVG-файл:
```html
<svg xmlns="http://www.w3.org/2000/svg">
  <symbol id="icon" viewBox="0 0 24 24">
    <circle cx="12" cy="12" r="10"></circle>
  </symbol>
</svg>
```

CSS:
```css
.svg {
  width: 100%;
  height: auto;
}
```

Таким образом, вы сможете сделать SVG-изображение адаптивным и убрать лишний блок при использовании тега `<use>`.
Похожие вопросы