html - Transform not working when parent's height is set in viewport units -
i'm having problems vertical centering. header has height of 100vh, , child element, site-info, has unspecified height. site-info element supposed vertically centered within header.
i've tried standard transform:translatey solution, doesn't work. top:50% work, it's transform doesn't happen. can see firebug transform property attached site-info, nothing happens.
i've tried using vertical-align: center on site-info no success, , using position:absolute solution header makes disappear completely. using position:absolute on site-info not either.
html:
<header> <div class="site-info"> <h1>title</h1> <p>some content</p> </div> </header> css:
header{ background-position:top center; background-size:100%; background-size:cover; height:100vh; position:relative; text-align:center; color:white; overflow:hidden; } div.site-info{ position:relative; text-align:center; display:inline-block; top: 50%; -moz-transform: translatey(-50%); -webkit-transform: translatey(-50%); -ms-transform: translatey(-50%); transform: translatey(-50%); }
since know parent container's height, can use line-height , vertical-align in tandem child's display inline-block:
header { background-color:grey; background-position:top center; background-size:100%; background-size:cover; height:100vh; line-height: 100vh; /* -- same 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 1 naturally inherit parent's enormous value -- */ vertical-align: middle; /* -- work -- */ /* top: 50%; -moz-transform: translatey(-50%); -webkit-transform: translatey(-50%); -ms-transform: translatey(-50%); transform: translatey(-50%);*/ }
Comments
Post a Comment