2016-12-26 7 views
0

最初から始めます。私は応答性の高いウェブサイトを作成します。そこには高さが変わる要素があります。そこには、新しい要素を関連付けるためにコンテナを作成しなければならなかった画像があります。残念ながら、サイズ変更後(電話をかけるなど)、コンテナは画像とともに幅を変更しません。パラメータの値をリフレッシュすると(たとえば、「inspect要素」で「表示」を削除して追加する)、既に正しく設定されています。この問題を解決するには?私はdiv要素にIMG代わり親コンテナのサイズが変更された場合、画像のコンテナは柔軟ではありません

.my-container-div 
{ 
    background-image: zoom 
} 

を使用

var i = 0; 
 
$('button').on('click', function() { 
 
    if (i%2) $('.background').css('height', '200px'); 
 
    else $('.background').css('height', '300px');i++; 
 
});
.background { 
 
    width: 600px; 
 
    height: 200px; 
 
    background-color: black; 
 
    transition: 0.3s; 
 
} 
 

 
.background > .container { 
 
    height: 100%; 
 
    display: inline-block; 
 
    background-color: white; 
 
} 
 

 
.background > .container > img { 
 
    height: 100%; 
 
    opacity: 0.7; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="background"> 
 
    <div class="container"> 
 
    <img src="https://i.ytimg.com/vi/bVzpweTJvhc/hqdefault.jpg"> 
 
    </div> 
 
</div> 
 

 
<br><br> 
 

 
<button>Change</button>

答えて

0

ため

var i = 0; 
 
$('button').on('click', function() { 
 
    if (i%2) $('.background').css('height', '200px'); 
 
    else $('.background').css('height', '300px');i++; 
 
});
.background { 
 
    width: 600px; 
 
    height: 200px; 
 
    color: white; 
 
    background-color: black; 
 
    transition: 0.3s; 
 
} 
 

 
.background > .container { 
 
    display: inline; 
 
} 
 

 
.background > .container > img { 
 
    height: 100%; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="background"> 
 
    <div class="container"> 
 
    <img src="https://i.ytimg.com/vi/bVzpweTJvhc/hqdefault.jpg"> 
 
    </div> 
 
    <span>I move too....</span> 
 
</div> 
 
<br><br> 
 
<button>Change</button>

+0

それはそれだと思いましたが、残念ながらそれはありません。コンテナに「背景色:白」を追加すると、イメージの幅がコンテナと異なることがわかります。したがって、まだ画像の右端への参照はありません:( – Invictus

+0

@Invictus更新日: – LGSon

+0

完璧な解決策が、私の問題を解決したので、ありがとう:) – Invictus

0

.background > .container { 
    height: 100%; 
    width: 100%; 
    background-image: url("https://i.ytimg.com/vi/bVzpweTJvhc/hqdefault.jpg"); 
    background-size: cover;  
} 
+1

何'background-image:zoom'ですか? – LGSon

+0

画像divの背景として私は次元を設定しないので、他の要素を画像に設定することができます。たとえば、画像の右端から20pxの余白を持つ他のdivを設定したい(position:absolute、right 20px)。 – Invictus

0

あなたcontainerクラスと画像:これで、あなたは

など... div要素とその背景のプロパティ、背景サイズ、背景の位置で

を再生することができます私はこのような何かをしたいですそれらのためにwidthが定義されていません。それが理由です。与えるあなたのcontainer(まだ、私はなぜ知らない...)width:50%とそれが動作inlineとしてcontainerが表示されている画像width:100%

+0

これを試しましたか? ...イメージを歪ませる以外には機能しません – LGSon

+0

イメージの比率を保存するように自動的に設定され、@ LGSonのように歪ませないため、幅は定義されていません。高さはあなたが見ることができるように定義されています。 – Invictus

+0

ドームDOMが更新されると、その状態が変わらないので、コンテナdivに何も起こりません。画像のサイズはheight属性のために変更され、width属性がないため、コンテナがオーバーフローします。 'overflow:hidden'を使用してイメージをコンテナ内に残すことができますが、純粋なCSSを使用すると、コンテナを作ること、イメージのサイズを考えることができません。 –

関連する問題