Я создал несколько ссылок, похожих на кнопки. Эти «кнопки» включают значки, которые добавляются шрифтом значка, используя элемент :after
.HTML/CSS:: после переполнения псевдоэлементов родительский
В качестве отзывчивого макета кнопки должны работать на нескольких размерах экрана. При размещении внутри гибкого контейнера элемент :after
переполняет его родительский.
Пример: HTML, в основном выглядит примерно так:
<div class="wrap">
<a href="/" class="btn icon">Test</a>
</div>
со следующим кодом CSS:
.wrap {
background: grey;
width: 20%;
padding: 20px;
}
.btn {
display: inline-block;
padding: 15px;
background: linear-gradient(to top, #ccc, #fafafa);
border: 1px solid #999;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0,0,0,.55);
max-width: 100%;
}
.icon {
font-family: FontAwesome;
}
.icon:after {
content: "\f04e";
margin-left: 8px;
}
и увидеть эту скрипку: http://jsfiddle.net/r6uLJ/
Когда вы сужать размер окна, вы увидите, что два треугольника (синий) переполняют кнопку (с серо-белый градиент). Есть ли что-нибудь, что я могу сделать, чтобы избежать этого, но все же использовать псевдоэлементы для этого?
Почему вы задаете 'макс-ширина: 100%' 'на .btn'? –
@MarcAudet Чтобы предотвратить переполнение контейнера .btn'. – Sven
В этом случае максимальная ширина не поможет. В вашем примере текст кнопки + значок/контент определяет ширину кнопки и может быть шире ширины обертки, что вызовет условие переполнения. Вам нужно подумать о том, как будет вести себя кнопка, поскольку обертка сжимается по ширине. Существует несколько способов проектирования вокруг этого. Можете ли вы дать некоторые рекомендации по дизайну, чтобы помочь сузить решения? –