2017-12-15 5 views
0

は私のコードCSSを使用してdivのすべての子を垂直方向にセンタリングするにはどうすればよいですか?ここで

.header { 
 
     width: 100%; 
 
     height: 100px; 
 
     background: black; 
 
    } 
 
    
 
    .header .headerContainer { 
 
     position: relative; 
 
    \t top: 50%; 
 
     transform: translateY(-50%); 
 
     height: inherit; 
 
    } 
 
    
 
    img#logo { 
 
     height: 75%;  
 
    } 
 
    
 
    p#logotext { 
 
     color: white; 
 
     display: inline 
 
    }
<div class="header"> 
 
    <div class="headerContainer"> 
 
     <img src="https://cdn.worldvectorlogo.com/logos/react.svg" alt="Logo" id="logo" /> 
 
     <p id="logotext">Welcome To Here</p> 
 
    </div> 
 
</div>

であるが、これは適切に要素を合わせていません。

headerContainerが正しく配置されるようにCSSを変更するにはどうすればよいですか?

+1

headerContainer

にインラインでは垂直要素をセンタリングしません。要素を並べて配置します。 – Granny

+0

私はそれらを個々の要素にアタッチすると、上部と変換は垂直に整列します。しかし、私はコンテナにそれらを接続すると、彼らは動作を停止 –

答えて

3

あなたはこれを解決するためにフレキシボックスを使用することができます。

.header { 
 
    background: black; 
 
    height: 100px; 
 
    width: 100%; 
 
} 
 
.header .headerContainer { 
 
    align-items: center; 
 
    display: flex; 
 
    height: inherit; 
 
} 
 
img#logo { 
 
    height: 75%;  
 
} 
 
p#logotext { 
 
    color: white; 
 
    display: inline 
 
}
<div class="header"> 
 
    <div class="headerContainer"> 
 
     <img src="https://placehold.it/50x50" alt="Logo" id="logo" /> 
 
     <p id="logotext">Welcome To Here</p> 
 
    </div> 
 
</div>

だからあなたは垂直方向の中央にアイテムをpositiontranformを使用する必要はありません。フレックスボックスについてもっと知りたければ、私はthis siteをお勧めします。

+0

これはトリックでした!おかげさまで、フレックスボックスについて学びましょう! –

+1

@AyushGuptaこれをチェックしてください:https://css-tricks.com/snippets/css/a-guide-to-flexbox/ – sjahan

+0

@sjahan - はい、フレックスボックスを学ぶのに最適なサイトの1つです。 –

0

はあなたにもCSSグリッドを使用することができます。このコード

<style> 
.class{ 
Position:absolute; 
top:50%; 
left:50%; 
transform:rotateX(-50%,50%); 
} 
</style> 
0

を使用してください。

.header { 
 
    background: black; 
 
    height: 100% 
 
    width: 100%; 
 
    padding: 20px; 
 
} 
 
.header .headerContainer { 
 
    display: grid; 
 
    grid-template-columns: 1fr 1fr; 
 
} 
 
img#logo { 
 
    width: auto; 
 
    height: auto; 
 
    align-self: center; 
 
} 
 

 
p#logotext { 
 
    color: white; 
 
    align-self: center; 
 
}
<div class="header"> 
 
    <div class="headerContainer"> 
 
     <img src="http://via.placeholder.com/350x150" alt="Logo" id="logo" /> 
 
     <p id="logotext">Welcome To Here</p> 
 
    </div> 
 
</div>

+0

CSSのグリッドサポートは、古いバージョンのブラウザではありませんが、 –

+0

はTrueです。 IE11 +はそれをサポートします。 https://caniuse.com/#search=grid平均的に見ることもできますが、ほとんどの人は近代的なブラウザを使用しています(https://www.w3counter.com/globalstats.php) –

0

近いので....あなただけのdispalyを配置する必要があります:曲げます。

.header { 
 
    background: black; 
 
    height: 100px; 
 
    width: 100%; 
 
} 
 
.header .headerContainer { 
 
    align-items: center; 
 
    display: flex; 
 
    height: inherit; 
 
} 
 
img#logo { 
 
    height: 75%;  
 
} 
 
p#logotext { 
 
    color: white; 
 
    display: inline 
 
}