2016-09-29 27 views
0

私はimg上にFont Awesomeアイコンを配置しようとしています。しかし、私のマークアップは絶対的でも相対的でもなく、レイアウトはフレックスボックスで行われます。絶対位置または相対位置なしの中央アイコン?

私はCSSの属性セレクタにアイコンを挿入した:

<div id="lightgallery"> 
    <a href="http://local.wordpress.dev/wp-content/uploads/2016/09/image10.jpg"> 
    <img src="http://local.wordpress.dev/wp-content/uploads/2016/09/image10.jpg" alt="" /> 
    </a> 
    <a href="http://local.wordpress.dev/wp-content/uploads/2016/09/image9.jpg"> 
    <img src="http://local.wordpress.dev/wp-content/uploads/2016/09/image9.jpg" alt="" /> 
    </a> 
    <a href="http://local.wordpress.dev/wp-content/uploads/2016/09/image8.jpg"> 
    <img src="http://local.wordpress.dev/wp-content/uploads/2016/09/image8.jpg" alt="" /> 
    </a> 
    <a href="https://youtu.be/5Z3Exfzz8Kk" data-poster="http://local.wordpress.dev/wp-content/uploads/2016/09/video-thumb.jpg"> 
    <img src="http://local.wordpress.dev/wp-content/uploads/2016/09/video-thumb.jpg" alt="" /> 
    </a> 

とCSS:

@media screen and (min-width: 48em) { 
    #lightgallery a { 
    width: calc(100%/3); 
    height: 240px; 
    } 

    #lightgallery img { 
    width: 100%; 
    background-image: url(); 
    background-repeat: no-repeat; 
    height: 240px; 
    object-fit: cover; 
    } 

    #lightgallery { 
    display: flex; 
    flex-wrap: wrap; 
    margin: 6.25em 0; 
    } 
} 

a[href*="youtu"]::before { 
    font-family: 'FontAwesome'; 
    content: "\f144"; 
    font-size: 2.5em; 
} 

そして、ここでは、マークアップですしかし、私は私を得ることができないYouTube画像を中心にしていますアトリビュートセレクタをdisplay: flex;justify-content: center;に設定することで、縦方向に中央に配置できます。それは私が来る限りです。

マークアップを変更せずにこれを達成するためのアイデアはありますか?

+1

https://jsfiddle.net/p2eLvmgj/これを試してみて、それはまだポジションを使用します。絶対に。 – Petroff

答えて

0

絶対的な位置付けなしにはできないと思います。下記のコードはあなたを助けることができます。

#lightgallery a { 
    width: calc(100%/3); 
    height: 240px; 

    text-decoration: none; 
    position: relative;  
} 

a[href*="youtu"]::before { 
    font-family: 'FontAwesome'; 
    content: "\f144"; 
    font-size: 2.5em; 

    position: absolute;  
    top: 0; 
    left: 0; 
    width: 100%;    
    height: 100%;    
    display: flex;    
    justify-content: center; 
    align-items: center;  
} 

Demo

+1

以下のコードで中心を配置することもできます: 'position:absolute;トップ:50%;左:50%;変換:変換(-50%、-50%); ' – Petroff

+0

@ペトロフはい、私たち=) – 3rdthemagical

+0

@ 3thathemhemicalありがとう。出来た。私はちょうど '#lightgallery img'と' #lightgallery a'を 'position:relative'にしなければなりませんでした –

関連する問題