出于某种原因,我的垂直对齐代码模糊了Chrome和Safari中的一些但不是所有子元素。
导致它的原因是translateY(-50%),如果我删除它,那么模糊性就会消失,但垂直居中效果会丢失。
/* @group Center all the things */
.center-wrapper {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
}
.center-wrapper .center {
position: relative;
overflow: hidden;
top: 50%;
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
transform: translateY(-50%);
/* This fixes the blurred buttons but breaks centering
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
transform: translateZ(0);*/
}
/* @end */
经过尝试和测试的方法,例如下面的工作,但它们打破了垂直居中:
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
transform: translateZ(0);
答案 0 :(得分:0)
解决这个模糊问题的唯一方法是,我可以看到更改垂直对齐方法并改为使用display: table
。以下是我的表现方式:
1)保持HTML标记相同
<div class="center-wrapper">
<div class="center">
<p>Centered content here</p>
</div>
</div>
2)将CSS更改为以下内容:
/* @group Center all the things */
.center-wrapper {
min-height: 100%;
padding: 0;
display: table;
width: 100%;
}
.center-wrapper .center {
display: table-cell;
vertical-align: middle;
}
/* @end */
答案 1 :(得分:0)
尝试在中间放置按钮时面临同样的问题,但按钮出现在父元素的悬停上,每次文本内部都是随机剪切的。
解决方案是:
.positioned-button {
transform: translateY(-50%) scale(1);
filter: blur(0);
line-height: 1;
}
什么都不打破,修复Chrome:)
答案 2 :(得分:0)
您可以在此处查看运行中的显示表。
.center-wrapper {
min-height: 200px;
padding: 0;
display: table;
width: 100%;
background: black;
}
.center-wrapper .center {
display: table-cell;
vertical-align: middle;
color: white;
}
.center-wrapper .center div {
height: 40px;
background: red;
width: 50%;
margin: 0 auto;
}
<div class="center-wrapper">
<div class="center">
<div>Centered content here</div>
</div>
</div>