dポイントプレゼントキャンペーン実施中!

現在独学でHTML5とCSS3の勉強をしています。

写真を角丸加工してそれにCSSで「box-shadow」プロパティで影を付けようとすると、角丸でカットした部分が白く残ってしまいます。

また、「border-radius」で角丸にしても同じです。

写真のサイズを300×225pxにした場合、写真を角丸にしても(カット部分は透明にしてあります)、ボーダーで角丸にしても結局は長方形のスペースはそのまま残ってしまうと言う事ですか。

写真を角丸加工して影を付けたい場合は、フォトショップなどで加工したものを貼り付けるしかないのでしょうか。

ごまかしで右隅のカットした部分を黒に塗っておけばそれらしくは見えるのですが。

CSSで処理ができれば1回の設定でできると考えたのですが、やはり甘い考えだったのでしょうか。

宜しくお願い致します。

A 回答 (2件)

HTML5でしたら、divを使う機会は劇的に減るでしょう。


画像の加工の必要はありません。
display:hiddenの必要もありません。
★置換インライン要素であるimgをblockに変更するだけです。
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<section class="photo">
 <h2>
  <p>
   画像を角丸で置いてみる。
  </p>
  <figure><img src="" width="" height="" alt=""></figure>
  <p>
   スタイルシートは下記のようになります。
  </p>
  <pre></pre>
</section>
のHTMLとすると・・・・

★タブは_に置換してあります。


<!doctype html>
<head>
_<meta charset="utf-8">
_<title>サンプル</title>
_<meta name="description" content="">
_<meta name="author" content="IRUKA">
_<link rel="stylesheet" href="css/style.css">
<style media="screen">
<!--
html,body{margin:0;padding:0;background-color:silver;}
header,section,footer{width:80%;margin:0 auto;}
section figure img{
_display:block;
_border-radius:20px;
_box-shadow: 10px 10px 10px 10px rgba(0,0,0,0.4);
_margin:0 auto;
/* ブラウザベンダーフィックス */
_-moz-border-radius: 0.5em;
_-webkit-border-radius: 20px;
_-o-border-radius: 20px;
_-ms-border-radius: 20px;
_-moz-box-shadow: 10px 10px 10px rgba(0,0,0,0.4);
_-webkit-box-shadow: 10px 10px 10px rgba(0,0,0,0.4);
_-o-box-shadow: 10px 10px 10px rgba(0,0,0,0.4);
_-ms-box-shadow: 10px 10px 10px rgba(0,0,0,0.4);
}
pre{
_background-color:white;
_padding: 0.5em 1em;
}
-->
</style>
</head>
<body>
_<header>
__<h1 id="title">Your title</h1>
__<nav>
___<ul>
____<li><a href="#">Some</a></li>
____<li><a href="#">navigation</a></li>
____<li><a href="#">links</a></li>
___</ul>
__</nav>
_</header>
_<section class="photo">
__<h2>画像に影をつける</h2>
___<p>
____画像を角丸で置いてみる。
___</p>
___<figure><img src="./images/5.jpg" width="480" height="360" alt=""></figure>
___<p>
____スタイルシートは下記のようになります。
___</p>
___<pre>section figure img{
display:block;
border-radius:20px;
box-shadow: 10px 10px 10px 10px rgba(0,0,0,0.4);
margin:0 auto;
}</pre>
_</section>
_<footer>
__<h3>A nice footer</h3>
_</footer>
</body>
</html>
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。
教えた頂いたCSSで望みの結果が出ました。
ありがとうございました。

お礼日時:2012/07/19 10:21

<div>


<img src="" />
</div>

のとき、
div {
display:inline;
border-radius:5px;
overflow:hidden;
}
とします。
    • good
    • 0
この回答へのお礼

お返事ありがとうございました。

お礼日時:2012/07/19 10:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!