画像のmargin-left
とを に設定することで、実際にこれを行うことができます。margin-right
-100%
これは、jsFiddleこれを示すものです。(代わりに以下のものを使用してください。より良いです)
margin-left
画像のとmargin-right
をはるかに大きな負の数に設定することをお勧めします。たとえば-9999%
、-100%
値と同様に、div
を含む要素の幅がの幅div
:
margin-left: -100% + the div's width: 100% + margin-right: -100% = 3x div width
オーバーフローを表示に切り替え、結果ウィンドウのサイズを の幅jsFiddle未満に変更することで、これと前の動作の違いを確認できます。300%
div
サポートされているブラウザーの範囲について @MaxOriola を引用する (コメントから):
Firefox、Chrome、Safari (最新バージョン)、および Explorer 8、9、10 で 2 番目のフィドルを再テストしました。それらすべてで正常に動作します。
注:画像要素を表示inline
するか、 (ラッパー要素上で)inline-block
水平方向に中央揃えにする必要があります。text-align: center
// ALL of the JS below is for demonstration purposes only
$(document).ready(function() {
$('a').click(function() {
$('body > div').toggleClass('overflow');
});
})
img {
margin: 0 -9999% 0 -9999%;
}
/* ALL of the CSS below is for demonstration purposes only */
body {
text-align: center;
font-family: verdana;
font-size: 10pt;
line-height: 20pt;
}
body>div {
margin: 0px auto;
width: 40%;
background-color: lightblue;
overflow: hidden;
}
img {
vertical-align: top;
}
.overflow {
overflow: visible;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>40% wide div [<a href="#">toggle overflow</a>]
<div>
<img src="http://via.placeholder.com/400x200" />
</div>
400px wide image
</div>