background-size: cover и позиции элементов [закрыт]

93
05 сентября 2021, 09:20
Закрыт. Этот вопрос не по теме. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском.

Закрыт 1 год назад.

Улучшить вопрос

Есть нестандартное изображение заднего фона, которое я растягиваю по всему размеру блока с помощью background-size: cover; при масштабировании сталкиваюсь со следующей проблемой, положение текста меняется, а изображение меняется на основе размера блока: Исходное состояние: https://clip2net.com/s/43ZuVFE Что выдает при масштабированиее: https://clip2net.com/s/43ZuRSS

Как должно быть: https://c2n.me/43ZvaVF

Подскажите пожалуйста, как решить эту задачу?

Всем спасибо!

Answer 1

Решение SVG+CSS

Чтобы обеспечить кроссбраузерность и адаптивность при любом размере дисплея можно воспользоваться следующей техникой:

  • Добавляете изображение фона с помощью тега SVG <image>
  • Текст добавляете с помощью тега <text> и позиционируете его с помощью координат x и y Оборачиваете svg код в контейнер. Теперь у вас это будет самостоятельный блок, начальные размеры, которого можно менять с помощью процентов и встроить в любое место вашей веб страницы.

Надеюсь ответ вам будет полезен.

.container { 
width:100%; 
height:100%; 
} 
text { 
font-size:48px; 
font-family:sans-serif; 
font-weight:700; 
fill:white; 
}
<div class="container"> 
<svg version="1.1" xmlns="http://www.w3.org/2000/svg"  
    xmlns:xlink="http://www.w3.org/1999/xlink" 
       width="100%" height="100%" viewBox="0 0 1055 717" preserveAspectRatio="xMinYMin meet"  >   
      
<image xlink:href="https://i.stack.imgur.com/ORJ3b.jpg" width="100%" height="100%" />  
<text x="550" y="200"  >TECT </text> 
</svg> 
</div>	 

Другая картинка, кроме ссылки не требуется ничего менять в коде. Адаптивность также осталась и текст не меняет своё расположение:

.container { 
width:100%; 
height:100%; 
} 
text { 
font-size:48px; 
font-family:sans-serif; 
font-weight:700; 
fill:white; 
}
<div class="container"> 
<svg version="1.1" xmlns="http://www.w3.org/2000/svg"  
    xmlns:xlink="http://www.w3.org/1999/xlink" 
       width="100%" height="100%" viewBox="0 0 1055 717" preserveAspectRatio="xMinYMin meet"  >   
      
<image xlink:href="https://i.stack.imgur.com/Vamst.jpg" width="100%" height="100%" />  
<text x="550" y="200"  >TECT </text> 
</svg> 
</div>	 

Answer 2

Попробуйте background-size: 100%; а для более точного ответа, прикрепите ваш код.

READ ALSO
Где взять stdafx.h в Visual Studio 2019?

Где взять stdafx.h в Visual Studio 2019?

Установил Visual Studio, скачать всё нужное начал работу и увидел что "stdafx" отсутствуетГде его можно найти в общем доступе для скачивания и куда...

232
Как хранятся глобальные const данные в библиотеках C++

Как хранятся глобальные const данные в библиотеках C++

Есть статическая библиотека (lib/

201
C++ rvalue присваивание объекта

C++ rvalue присваивание объекта

Работаю с std::list Есть класс TTimerData (с методами) который надо поместить в лист

231