2016-04-05 11 views
1

私はモバイルの最初のメディアクエリでウェブサイトを構築しています。一度大きなデバイス(タブレット)に着くと、.textコンテナをフロートしてイメージの右側に配置する必要がありました。浮動小数点の後に中心項目を整列する

フロートはページの中央にコンテンツを垂直に配置するように機能しましたが、ページの中央に画像とテキストコンテンツを水平に中央に配置する方法がわかりませんでした。

私の.textcontainerにmargin-rightの8%を追加して中央揃えにしましたが、より反応性の高いページの中央にすべてのコンテンツを整列させる良い方法があるのだろうかと思います?

また、フロートを使用しているため、.mailiconイメージは、ページの下部に(垂直方向と水平方向に)中央にはなりません...私は中央に戻す必要があります。ここで

は私のHTMLです:

<div class="section section4"> 
     <img src="icons/ML-network.gif" alt="icon3"> 
     <div class="textcontainer"> 
     <h1>Ethereum</h1> 
     <p class="ultralight">A turing complete platform with numerous <br> pre-optimized smart contract templates. Backed by the security of Ethereum.</p> 
     </div> 
     <a href="mailto:[email protected]"><img class="mailicon" src="icons/email-icon%20color.png" alt="mail icon"></a> 
    </div> 

と私のCSS:

main img { 
     width: 30%; 
    } 
    .textcontainer { 
    float: right; 
    width: 50%; 
    margin-right: 8%; /* ADJUST BETTER... */ 
    } 
    main .section > * { 
    position: relative; 
    top: 50%; 
    transform: translate(0, -50%); 
} 
    main h1 { 
    text-align: left; 
    font-size: 1.8em; 
    margin-top: 0;  
    } 
    main p { 
    text-align: left; 
    margin: 0;  
    } 
    .section4 .mailicon { 
    clear: both; 
    width: 40px !important; 
    position: absolute; 
    bottom: 0; 
    left: 0; 
    right: 0; 
    margin: auto; 
    } 
+0

は、あなたが達成しようとするものを少しは不明です。アイコン3とテキストボックスを同じ行に、アイコン3を左側に、テキストボックスを中央に配置しますか?または、お互いの中心の両方の下に? –

+0

私は、icon3と.textcontainerを(浮動小数点の)互いに横に置き、my .section4の中央に縦と横の中央に配置します。 私の.mailiconが私の.section4の中央にあるようにしたい –

答えて

0

あなたが親に与えられたtext-alignルールを遵守いる(あなたのケースの.textcontainerで)子要素にdisplay:inline-block;を使用することができます。

iPhoneのメディアクエリも入れて、.textcontainerを中央揃えにしました。

img { 
 
    width: 30%; 
 
    float:left; 
 
} 
 
.clearfix{ 
 
clear:both; 
 
} 
 
.section{ 
 
    text-align:right; 
 
} 
 
.textcontainer { 
 
    width: 50%; 
 
    display:inline-block; 
 
    text-align:left; 
 
} 
 
main.section > * { 
 
    position: relative; 
 
    top: 50 %; 
 
    transform: translate(0, -50%); 
 
} 
 
main h1 { 
 
    text - align: left; 
 
    font - size: 1.8em; 
 
    margin - top: 0; 
 
} 
 
main p { 
 
    text-align: left; 
 
    margin: 0; 
 
} 
 
.section4.mailicon { 
 
    clear: both; 
 
    width: 40px!important; 
 
    position: absolute; 
 
    bottom: 0; 
 
    left: 0; 
 
    right: 0; 
 
    margin: auto; 
 
} 
 

 
@media only screen 
 
    and (min-device-width: 320px) 
 
    and (max-device-width: 480px) 
 
    and (-webkit-min-device-pixel-ratio: 2) { 
 
    .section{ 
 
    text-align:center; 
 
    } 
 
}
<div class="section section4"> 
 
    <img src="icons/ML-network.gif" alt="icon3"> 
 
    <div class="clearfix"></div> 
 
    <div class="textcontainer"> 
 
    <h1>Ethereum</h1> 
 
    <p class="ultralight">A turing complete platform with numerous 
 
     <br>pre-optimized smart contract templates. Backed by the security of Ethereum.</p> 
 
    </div> 
 
    <div class="clearfix"></div> 
 
    <a href="mailto:[email protected]"> 
 
    <img class="mailicon" src="icons/email-icon%20color.png" alt="mail icon"> 
 
    </a> 
 
</div>

+0

ok私は自分のHTMLをそのまま残してCSSを変更します。私は表示します:.textcontainerと私のメインイメージをインラインブロックし、すべての浮動小数点を削除し、これを加えました: .section4> * { position:relative; トップ:48%; トランスフォーム:translate(0、-50%); 右側の段落の下に付いている.mailiconを除いて、すべてがページの中央に配置されていますか? –

0

あなたのコードは、(垂直揃え)自分のコンピュータ上で動作していないようです。

これを行うには、jQのを使用することができます。縦の中心を合わせるために

var conWidth = $(".section4").width(),imgWidth =$(".section4 > img").width(),textConWidth = $(".textcontainer").width() ; 
    $(".textcontainer").css("margin-right",(conWidth - imgWidth - textConWidth)/2); 

が、私は通常これを行う:

.someclass{ 
     display: table-cell; 
     vertical-align:middle; 
     width: 100px; 
     height: 100px; 
    } 
関連する問題