是否可以居中嵌套块元素,如果是这样,如何?
我有一个最初未知宽度的元素,特别是用户提供的MathJax方程。 我把元素设置为内联块,以确保元素的宽度适合其内容,并使其具有定义的宽度。 但是,这阻止了传统的居中方法。 也就是说,以下不起作用:
.equationElement { display: inline-block; margin-left: auto; margin-right: auto; }
解决scheme不能:
.equationElement { display: block; width: 100px; margin-left: auto; margin-right: auto; }
因为我不知道宽度实际上应该是多less,如果用户点击方程,我需要整个方程突出显示,所以我不能将宽度设置为0.有没有人有一个解决scheme来集中这个方程?
只需设置text-align: center;
在容器上。
这是一个演示 。
另一种方法来做到这一点(工作块元素也):
.center-horizontal { position: absolute; left: 50%; transform: translateX(-50%); }
说明:left:50%将从包含父元素的中心开始定位元素,所以您想用transform的一半宽度将其拉回 :translateX(-50%)
注1:请务必将包含父项的位置设置为:relative; 如果父母绝对定位,则将100%宽度和高度,0填充和边距div放在其中,并将其赋予相对位置
注2:也可以修改垂直居中
top:50%; transform: translateY(-50%);
有点晚,但类似于Ivek的答案,可以避免使用margin-left
而不是left
来使用position
声明,所以:
margin-left: 50%; transform: translateX(-50%);