Страницы

Поиск по вопросам

воскресенье, 31 марта 2019 г.

Как обойти текст при наведении на svg элемент?

Есть следующий код, при наведении на блок у svg должна меняться обводка, но если наводить на текст, который находится над самим svg элементом, то естественно обводка не появляется, пробовал делать вот так:
.accordion_name h2:hover svg { stroke: orange; }
Но это не привело ни к каким результатам, что можно сделать в данной ситуации?
И сразу еще вопрос, я разместил вот этот svg блок относительно родительского блока, мне нужно что бы текст всего был в районе данного треугольника:
Но если текст будет больше, то он выйдет за пределы:
Оно так и должно происходить с моим выполнением задачи, но есть ли способ сделать это правильно: Что бы если текст выходил за пределы треугольника, то треугольник делался больше в ширину, либо другие решения (Пробовал задавать максимальную ширину блоку с текстом, но не помогло).
* { margin: 0; padding: 0; } body { backgoround-color: #ddddd; } .wrapper { margin: 30px; max-width: 600px; } .accordion_item { margin-top: 4px; } .accordion_name { padding: 10px; cursor: pointer; position: relative; } .accordion_name h2 { position: relative; z-index: 3; display: inline-block; } .accordion_name h2:hover svg { stroke: orange; } svg { stroke: transparent; position: absolute; fill: #dddddd; height: 100%; width: 100%; top: 0; left: 0; right: 0; bottom: 0; z-index: 0; transition: 0.2s; } svg:hover { stroke: orange; } .accordion_content { height: 0; overflow: hidden; }

One accordiont line

Lorem, ipsum dolor sit amet consectetur adipisicing elit. Sapiente molestias inventore cum. Eligendi ad quae, veritatis nostrum dolores doloremque culpa. Nam sequi omnis fugiat sed. Enim ipsum rerum iure quisquam.

One accordiont line

Lorem, ipsum dolor sit amet consectetur adipisicing elit. Sapiente molestias inventore cum. Eligendi ad quae, veritatis nostrum dolores doloremque culpa. Nam sequi omnis fugiat sed. Enim ipsum rerum iure quisquam.

One accordiont line

Lorem, ipsum dolor sit amet consectetur adipisicing elit. Sapiente molestias inventore cum. Eligendi ad quae, veritatis nostrum dolores doloremque culpa. Nam sequi omnis fugiat sed. Enim ipsum rerum iure quisquam.


Ответ

Сделайте табы при помощи css:
* { margin: 0; padding: 0; } div { border-bottom: 1px solid #ccc; margin: 20%; cursor: pointer; } span { position: relative; display: table; border: 1px solid #ccc; border-right: none; background: #eee; line-height: 28px; margin-bottom: -1px; padding: 0 30px; } span:before, span:after { content: ''; position: absolute; top: -1px; left: 100%; width: 0; height: 0; border-style: solid; border-width: 30px 0 0 50px; /* Изменяя цифру 50 можно менять угол наклона */ border-color: transparent transparent transparent #ccc; z-index: -1; } span:after { margin-left: -2px; border-color: transparent transparent transparent #eee; } div:hover { border-bottom-color: orange; } div:hover span { border-color: orange; } div:hover span:before { border-color: transparent transparent transparent orange; }

Пунтк 1

Не будет проблем с шириной. Ограничение для текста тоже можно приделать используя overflow: hidden и white-space: nowrap. Можете дорабатывать как захочется.

Комментариев нет:

Отправить комментарий