Я пытаюсь воссоздать свой логотип с HTML
и CSS
в качестве упражнения, чтобы узнать больше о поворотах, переходах и анимации;Я нахожу это довольно утомительным в отношении позиционирования и чувствую, что я могу поступить неправильно.Вот базовое представление моего логотипа:
До сих пор HTML
и CSS
довольно просты, но, как я уже сказалкажется очень утомительным, так как любое изменение высоты или положения элементов div
заставляет меня всюду перемещать вещи.Я бы предпочел иметь родительский элемент div
, в который помещается логотип и изменяющий размер / репозиционировать на основе родительского элемента.
Я думал, что position: relative
выполнит репозиционирование, но я не уверен, насколько хорошоиспользование процентов будет работать для атрибутов width
и height
, когда дело доходит до этого процесса.
Вот мой текущий код;оно неполное, но я хотел обратиться за более опытным советом, прежде чем делать это слишком далеко, и в итоге пришлось переписать все это.
.box {
width: 100px;
height: 100px;
background-color: #3CF;
transform: rotatez(45deg);
margin: auto;
position: fixed;
top: 50px;
left: 500px;
}
.astick {
width: 3px;
height: 250px;
background-color: #FC0;
transform: rotatez(45deg);
position: fixed;
top: -8px;
left: 460px;
}
.bstick {
width: 3px;
height: 250px;
background-color: #8C3;
transform: rotatez(-45deg);
position: fixed;
top: -45px;
left: 460px;
}
<div class="logo">
<div class="box"></div>
<div class="astick"></div>
<div class="bstick"></div>
<div class="cstick"></div>
</div>
Мне интересно, есть ли более разумный или более эффективный способ сделать это.Когда я говорю «более эффективный», я имею в виду, что поддержка и повторное использование просты и занимают минимальное время.
Кроме того, какие проблемы возникнут при анимации размеров моих элементов для получения хорошего эффекта перехода?Я полагаю, что только изменение размеров вызовет проблемы с позиционированием во время переходов, но я думаю, что я не понимаю все потенциальные проблемы.
РЕДАКТИРОВАТЬ: Использование SVG
Я имеюна основании уже предоставленных комментариев и ответов решил, что SVG
будет отличным решением для продвижения вперед;Я назначу вознаграждение в размере 50 тому, кто напишет невероятно подробный ответ по SVG
, который отвечает на все мои проблемы, упомянутые выше.
- Позиционирование
- Масштабирование
- Анимация
- Стилизация с помощью CSS
- и т. Д.