我遇到垂直居中问题。 <?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Tour Word</string>
<string name="title_activity_main">MainActivity</string>
<string name="hello">Merhaba!</string>
<string name="action_settings">Ayralar</string>
</resources>
的高度为header
,其子元素100vh
的高度未指定。 site-info
元素应该在site-info
内垂直居中。
我已尝试过标准的header
解决方案,但它不起作用。 transform:translateY
确实有效,但就像Top:50%
没有发生一样。我可以通过FireBug看到transform
属性已附加到transform
,但没有任何反应。
我也尝试在site-info
上使用vertical-align: center
但没有成功,并且对site-info
使用一些position:absolute
解决方案会让它完全消失。在header
上使用position:absolute
也无济于事。
HTML:
site-info
CSS:
<header>
<div class="site-info">
<h1>Title</h1>
<p>some content</p>
</div>
</header>
答案 0 :(得分:0)
由于您知道父容器的高度,因此您可以使用line-height和vertical-align,因为您的孩子的显示是内联块:
header {
background-color:grey;
background-position:top center;
background-size:100%;
background-size:cover;
height:100vh;
line-height: 100vh; /* -- same as height -- */
position:relative;
text-align:center;
color:white;
overflow:hidden;
}
div.site-info {
position:relative;
text-align:center;
display:inline-block;
line-height: 1; /* -- reset to 1 as it will naturally inherit parent's enormous value -- */
vertical-align: middle; /* -- This will work now -- */
/* top: 50%;
-moz-transform: translateY(-50%);
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
transform: translateY(-50%);*/
}
答案 1 :(得分:0)
正如我在对我的问题的评论中所述,问题是与animate.css
的冲突; FadeInUp
动画。
我尝试将父div
与变换垂直对齐。我还希望它能够设置动画,因此我将FadeInUp
应用于它,却不知道FadeInUp
也使用了transform
,从而导致了冲突。
我通过将transform
动画应用于子项(FadeInUp
和h1
)来解决了冲突的p
。