Я изменяю ссылку для загрузки, чтобы над ней отображались две иконки (используя псевдоэлементы и шрифт значков). Эти значки должны быть наслоены.
Для этого я присваиваю ссылке position: relative
, а второй значок (который я размещаю поверх первого) получает position: absolute
. Затем я просто отрегулировал значения top
и left
так, чтобы они оказались там, где я хотел.
@import url('http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css');
body {
/* just to make sure everything fits on screen */
padding: 100px;
text-align: center;
}
.download {
position: relative;
color: #000;
text-decoration: none;
}
.download::before {
display: block;
content:'\f1c1';
font-family:'FontAwesome';
font-size: 42pt;
margin-bottom: 10px;
}
.download::after {
position: absolute;
display: block;
content:'\f019';
font-family:'FontAwesome';
font-size: 28pt;
top: -40px;
left: 50%;
margin-left: 5px;
}
<a href="#" class="download">Download PDF</a>
В Хроме работает отлично. Значок «скачать» находится прямо над значком «документ» в правом нижнем углу. Однако в Firefox значок «скачать» находится над значком «документ». Я подозреваю, что это результат того, что псевдоэлемент технически не является дочерним элементом DOM элемента a.download
, хотя этот пример (который не использует псевдоэлементы) имеет ту же проблему с позиционированием.
Чем отличаются реализации position: absolute
в браузерах в сочетании с псевдоэлементами и как мне обойти это?