【发布时间】:2017-01-31 01:08:50
【问题描述】:
我正在尝试在 1280 像素的最大宽度容器内以 1.5% 的右边距右对齐绝对元素 (#header-supporter-cont)(绝对与图像重叠)。如果它是一个相对元素,这将非常容易,但作为绝对元素,我无法实现这一点。
作为旁注,我正在尝试在 flexbox 中执行此操作,因为像我最初所做的那样简单地设置 right: 1.5% 不会将 #header-supporter-cont 中的内容与页面的其余 1280px 水平边距对齐,因为它从边到边计数。
HTML:
<header id="header">
<div id="header-cont">
<a href="#"><img src="http://placeholdit.imgix.net/~text?txtsize=44&txt=Header%20Image&w=1920&h=200" /></a>
<div id="header-supporter-cont">
<div id="header-supporter">
<div id="header-supporter-text">
Image text here
</div>
<a href="#" target="_blank"><img src="https://www.aexp-static.com/nav/ngn/img/logo_bluebox_1x.gif" /></a>
</div>
</div>
</div>
</header>
CSS:
#header {
margin: 0;
width: 100%;
height: auto;
position: relative;
}
#header #header-cont a {
display: block;
}
#header #header-cont a img {
display: block;
width: 100%;
max-height: 200px;
object-fit: cover;
}
#header #header-cont #header-supporter-cont {
margin: 0 auto;
max-width: 1280px;
margin: 0 1.5%;
position: relative;
}
#header #header-cont #header-supporter-cont #header-supporter {
display: flex;
flex-direction: row;
align-items: flex-end;
position: absolute;
bottom: 20px;
right: 0;
}
#header #header-cont #header-supporter-cont #header-supporter #header-supporter-text {
padding-bottom: 5px;
font-size: 0.75em;
}
#header #header-cont #header-supporter-cont #header-supporter #header-supporter-text span {
box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.2);
}
#header #header-cont #header-supporter-cont #header-supporter a {
display: block;
}
#header #header-cont #header-supporter-cont #header-supporter a img {
width: 55px;
}
演示:
- 原始的,非弹性盒:http://codepen.io/ourcore/pen/ggoebB
- 无法正常工作的弹性框:http://codepen.io/ourcore/pen/oBpqqy
【问题讨论】:
-
我在 2 支笔中看到的唯一区别是文本的位置。
-
@Pangloss 是的,首先,它看起来接近我想要实现的目标,但右边距已关闭;在第二个中,我尝试使用 flexbox,但它看起来一点也不正确。抱歉,我忘了说这与
#header-supporter有关。 -
将 #header-supporter 从 flex-direction 行更改为列。
-
@Pangloss 解决了将文本放在图像上方的问题,但我试图将文本和图像一起向右移动,就像在第一支钢笔中一样。
-
在#header-supporter-count 上直接设置绝对值codepen.io/anon/pen/RKxyVN