Положение кнопки относительно SVG - как настроить согласованное положение

У меня на странице есть базовый SVG. SVG масштабируется в зависимости от размера страницы, чего я и хочу.

SVG должен находиться в теге объекта, поскольку настоящий, с которым я работаю, включает в себя javascript и CSS в файле.

example.svg

   <svg xmlns = "http://www.w3.org/2000/svg" xmlns:xlink = "http://www.w3.org/1999/xlink" version = "1.1" id = "Layer_1" viewBox = "246 0 600 430.95">
      <rect width = "100%" height = "100%" fill = "red" />
    </svg>

Я также добавил на страницу раскрывающуюся кнопку. Это тоже масштабируется до размера страницы в результате добавленного мной CSS-класса responsive-width.

Однако я бы хотел, чтобы кнопка всегда отображалась чуть ниже SVG. Мне удалось добиться этого с помощью margin-top: 80%;, когда экран имеет определенный размер.

Положение кнопки относительно SVG - как настроить согласованное положение

Однако, когда я изменяю размер браузера (например, если сужаю его), положение кнопки резко меняется и иногда появляется поверх SVG.

Положение кнопки относительно SVG - как настроить согласованное положение

У меня вопрос: как сделать так, чтобы кнопка всегда отображалась, например, на 20 пикселей (или заданный процент) ниже SVG?

Вот пример того, как я сейчас пытаюсь этого добиться.

body {
  background-color: #C1C1C1;
}

.responsive-width {
  font-size: 1.5vw;
  text-align: center;
}

.tuner {
  position: absolute;
  left: 50%;
  transform: translateX(-29%);
  margin-top: 5%;
  height: 65%;
}

.dropdownposition {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  margin-top: 80%;
}
<link rel = "stylesheet" href = "https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity = "sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin = "anonymous">

<object type = "image/svg+xml" data = "example.svg" class = "tuner"></object>

<div class = "dropdown">
  <button class = "btn btn-secondary dropdown-toggle responsive-width dropdownposition" type = "button" id = "dropdownMenuButton" data-toggle = "dropdown" aria-haspopup = "true" aria-expanded = "false">
    My Dropdown
  </button>
  <div class = "dropdown-menu" aria-labelledby = "dropdownMenuButton"></div>
</div>

 

Привет, @VXp, я не понимаю, почему вы отредактировали мой вопрос так, чтобы SVG был как внутри тега объекта, так и встроен на страницу? Теперь есть два основных SVG, когда это никогда не было намерением?

nmh 14.06.2018 18:09

Кроме того, SVG должен быть в теге объекта, поскольку я использую в нем javascript и CSS.

nmh 14.06.2018 18:46

Был только один svg, а теперь, после того как вы его отредактировали, нет. В первую очередь вы должны создать сниппет с желаемым поведением, а не просто вставлять код туда и сюда.

VXp 15.06.2018 07:39
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
3
35
1

Ответы 1

http://jsfiddle.net/zsguyw1e/6/enter code here

Быстрая и грубая попытка ... Я думаю, что порядок в html может помочь.

Привет спасибо за ответ Это не сработало. Проблема в том, что я хочу, чтобы svg был центрирован. Этого легко добиться, если я использую его в элементе <object>. Когда svg встроен в страницу, как в вашем ответе, он попадает в крайний левый угол экрана. Хотя это, кажется, упрощает размещение раскрывающегося списка под ним, я не могу найти простого способа сделать встроенный svg, расположенный в центре.

nmh 15.06.2018 12:46

Другие вопросы по теме