例えば以下の様にマークアップした画像があります。
lang
1<div class="Wrapper"> 2 <img src="home" alt="" height="600" width="600" border="0"> 3</div>
lang
1.Wrapper { 2 width:300px; 3 height: 150px; 4 border:1px solid #000; 5 overflow: auto; 6 box-shadow:0px 1px 3px rgba(216,213,213,1) inset; 7 }
この時<div>の内側にシャドウを入れたいのですが、画像にはシャドウがかかりません。スクロールして画像の上にシャドウがくるような方法はありますか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
0
ベストアンサー
シャドウを見やすくするのに、濃くしてます。画像のパスは私のローカルのやつをてきとうに当ててますのでご了承ください。
以下は、スクロールバーの出るタイプ。
lang
1<style type="text/css"> 2html { width:300px;} 3.Wrapper { 4 width:300px; 5 height: 150px; 6 border:1px solid #000; 7 overflow: hidden; 8} 9.WrapperInner { 10 width:300px; 11 height: 150px; 12 overflow: auto; 13 position:relative; 14} 15img { display:block; position:relative;} 16.WrapperInner:after { content:''; width:600px; height:600px; display:block; box-shadow:0px 0px 10px rgba(0,0,0,1) inset; position:absolute; top:0; left:0;} 17</style> 18<div class="Wrapper"> 19 <div class="WrapperInner"> 20 <img src="demo1.png" alt="" height="600" width="600" border="0"> 21 </div> 22</div>
スクロールバーをオーバーフローで見えなくした感じ。ただし横スクロールできない。
lang
1<style type="text/css"> 2html { width:300px;} 3.Wrapper { 4 width:300px; 5 height: 150px; 6 border:1px solid #000; 7 overflow: hidden; 8} 9.WrapperInner { 10 width:315px; 11 height: 165px; 12 overflow: auto; 13 position:relative; 14} 15img { display:block; position:relative;} 16.WrapperInner:after { content:''; width:600px; height:600px; display:block; box-shadow:0px 0px 10px rgba(0,0,0,1) inset; position:absolute; top:0; left:0;} 17</style> 18<div class="Wrapper"> 19 <div class="WrapperInner"> 20 <img src="demo1.png" alt="" height="600" width="600" border="0"> 21 </div> 22</div>
うーん、それともこうかなぁ。スクロールバーの内側に設置。これかな?
lang
1<style type="text/css"> 2html { width:300px;} 3.Wrapper { 4 width:300px; 5 height: 150px; 6 border:1px solid #000; 7 overflow: hidden; 8 position:relative; 9} 10.WrapperInner { 11 width:300px; 12 height: 150px; 13 overflow: auto; 14 position:relative; 15} 16img { display:block; position:relative;} 17.Wrapper:after { content:''; width:285px; height:135px; display:block; box-shadow:0px 0px 10px rgba(0,0,0,1) inset; position:absolute; top:0; left:0;pointer-events: none;} 18</style> 19<div class="Wrapper"> 20 <div class="WrapperInner"> 21 <img src="demo1.png" alt="" height="600" width="600" border="0"> 22 </div> 23</div>
投稿2015/06/01 15:01
総合スコア204
0
次の様に要素を一つ増やせば可能ですが、そのままだと難しいのではないでしょうか。
lang
1<div class="Wrapper"> 2 <div class="Image"> 3 <img src="home" alt="" height="600" width="600" border="0"> 4 </div> 5</div>
*CSSを修正しました
lang
1.Wrapper { 2 overflow: hidden; 3 position: relative; 4 width: 300px; 5 height: 150px; 6 margin: 50px; 7 border: 1px solid #000; 8} 9 10.Wrapper::before { 11 position: absolute; 12 z-index: 1; 13 top: 0; 14 left: 0; 15 width: 300px; 16 height: 150px; 17 content: ""; 18 box-shadow: 0 1px 3px rgba(213,213,213,1) inset; 19 pointer-events: none; /* IEは11から対応 */ 20} 21 22.Image { 23 overflow: auto; 24 position: relative; 25 width: inherit; 26 height: inherit; 27}
投稿2015/05/31 16:28
編集2015/05/31 16:42総合スコア617
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
へー、スマホサイトですかね?
おもしろいですね。
lang
1html { width:300px;} 2.Wrapper { 3 width:300px; 4 height: 150px; 5 border:1px solid #000; 6 overflow: auto; 7 position:relative; /* 追記 */ 8} 9img { display:block; position:relative;} /* 追記 */ 10.Wrapper:after { content:''; width:600px; height:600px; display:block; box-shadow:0px 1px 3px rgba(216,213,213,1) inset; position:absolute; top:0; left:0;} /* 追記 */
投稿2015/05/30 17:11
総合スコア204
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/05/31 13:02
2015/06/01 05:18
2015/06/01 14:29
0
擬似要素をdivと同じサイズで重なるように配置して、z-indexで手前に持ってきてbox-shadowをつけてやればいいんじゃないでしょうか?
もしかして見当違いなこと言ってますかね。
投稿2015/05/29 06:52
総合スコア830
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
img要素ではなく、background-imageプロパティであれば影がかかるようですが、それは難しいのでしょうか?
投稿2015/05/29 04:44
総合スコア870
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/06/02 13:35