我在Firefox中使用flexbox水平对齐div时遇到问题。它在Chrome中运行良好。
这是代码:
<header id="header">
<p class="small-hidden">I am</p>
<h1>Håkan</h1>
<p>web designer from Sweden, living in the Basque Country, Spain</p>
<div class="contact-icons">
<a href="#.com"><i class="mi mi-Mail"></i></a>
<a href="#"><i class="mi mi-whatsapp"></i></a>
<a href="#contact"><i class="mi mi-PenPalette"></i></a>
</div>
</header>
--------------------------------------------------------------------------
header {
background-image: url(../img/hakan_mobile.jpg);
background-size: cover;
height: 70vh;
display: flex;
flex-direction: column;
justify-content: flex-end;
align-items: center;
color: #777;
}
@media only screen and (min-width: 40em) {
header {
background-image: url(../img/hakan.jpg);
height: 100vh;
width: 40vw;
position: fixed;
background-position: center;
justify-content: center;
}
}
.contact-icons {
position: fixed;
top: 0;
}
@media only screen and (min-width: 40em) {
.contact-icons {
bottom: 2rem;
top: inherit;
}
}
我想要做的是将文本(p + h1 + p)放在标题的下半部分,链接应居中并固定在屏幕顶部的小屏幕上并居中于底部更大的屏幕。但是,如果我使用position: fixed
(在移动设备上向下滚动时需要保持链接在屏幕顶部可见),.contact-icons
将不会水平居中。如果我删除了position: fixed
,它就有效。
我在容器上尝试了align-items: center
,在align-self: center
上尝试了.contact-icons
,但结果相同。
在Chrome中,功能完美,但我无法在Firefox中运行。有什么建议吗?
小提琴:https://jsfiddle.net/1qrqxd7m/
在小提琴上看起来几乎居中,但仍然没有。在我的工作副本上,它看起来更偏离中心。
答案 0 :(得分:0)
也许特别针对Firefox使用&#34; position:sticky;&#34;
答案 1 :(得分:0)
由于您正在使用position: fixed
,因此预计不会对Flex容器的样式影响.contact-icons定位。
将它们相对于整个页面水平居中:
position: fixed
left: 50%
transform: translateX(-50%)