将项目居中,位置:相对
我有一个菜单,将鼠标悬停在绝对定位的 div 上时出现。所有菜单项都必须相对定位,因为绝对 div 会在一页上出现多次,并且在一个实例中会以多种尺寸出现。
当我不知道父 div 的大小时,如何使用 position:relative
垂直和水平居中多个项目?
我知道负边距的 position:absolute
技巧,但这种情况需要不同的东西。
这是代码:
.OuterCase {
position : absolute;
width : 100%;
height : 100%;
text-align: center;
}
.InnerItem {
width : 38px;
height : 38px;
display: inline-block;
}
我已经让它水平居中项目;它的垂直度有点难以捉摸。
I've got a menu that appears on hover over an absolutely positioned div. All of the menu items have to be relatively positioned because the absolutely div will appear multiple times on a page and will appear in multiple sizes in one instance.
How would I center multiple items with position: relative
both vertically and horizontally when I won't know the the size of the parent div?
I know the position: absolute
trick with negative margins, but this situation calls for something different.
Here's the code:
.OuterCase {
position : absolute;
width : 100%;
height : 100%;
text-align: center;
}
.InnerItem {
width : 38px;
height : 38px;
display: inline-block;
}
I've got it to center the items horizontally; it's getting the vertical that's being a bit elusive.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
更简单:
您现在位于父元素的中心。你也可以垂直地这样做。
Much simpler:
You are now centered in your parent element. You can do that vertically too.
或者,您也可以使用 CSS3 灵活盒子模型。
这是创建灵活布局的好方法,也可以应用于中心内容,如下所示:
Alternatively, you may also use the CSS3 Flexible Box Model.
It's a great way to create flexible layouts that can also be applied to center content like so:
如果您有一个相对(或以其他方式)定位的 div,您可以使用
margin:auto
将其中的内容居中垂直居中有点复杂,但也是可能的。
If you have a relatively- (or otherwise-) positioned div you can center something inside it with
margin:auto
Vertical centering is a bit tricker, but possible.
您可以使用 calc 来相对于中心定位元素。例如,如果您想将元素
200px
定位在距离中心右侧..您可以这样做:不要忘记这一点
当您使用符号
+
和- 符号和数字之间必须有一个空格,但是当您使用符号
*
和/
时,不需要空格。You can use
calc
to position element relative to center. For example if you want to position element200px
right from the center .. you can do this :Dont forget this
When you use signs
+
and-
you must have one blank space between sign and number, but when you use signs*
and/
there is no need for blank space.另一种选择是创建一个额外的包装器以使元素垂直居中。
Another option is to create an extra wrapper to center the element vertically.
只要确保父母的身高大于孩子的身高即可。
Just make sure the height of the parent is greater than the height of the child.
我在这里还没有看到另一个简单的解决方案:
An other simple solution I did not yet see here: