2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

border-radius

Last updated at Posted at 2017-10-26

border-radiusとborder

border-radius(丸くする)が流行り始めました。borderと同時に指定する場面が多いので、注意点を一つ備忘録がてら投稿致します。

画像を含んだリスト

下記の.listクラスにborder-radius, borderを追加するとどうなるか。
image.png

<div class="list">
  <div><img class="img" src="https://placehold.jp/150x40.png"></div>
  <div class="item">リストアイテム</div>
  <div class="item">リストアイテム</div>
  <div class="item">リストアイテム</div>
</div>

### 適用後
image.png

.list {
  display: block;
  border-radius: 20px;
  border: solid 1px gray;
  margin: 20px;
  width: 150px;
}

実は、こうなります。画像、リストアイテムの要素には、border-radiusが適用されるわけではありません。

解決方法

ですので、下記のように、上と下それぞれ適用する必要があります。

.img {
  display: block;
  border-top-right-radius: 20px;
  border-top-left-radius: 20px;
}
.item:last-child {
  border-bottom-right-radius: 20px;
  border-bottom-left-radius: 20px;
}

image.png

mask-imageを使用する手段もありますが、画像を挿入する必要があるのでおすすめしません。

訂正

overflow: hiddenをご教授いただきました。
画像には、borderをつけたくない場合、上記のようにimgの上とitemの下にbroder-radiusを指定するか、.list, .item両者にborder-radiusを指定する方法が正確です。

.listにoverflow: hiddenを指定し、.itemにborder-radiusを指定しないと下記のようになるためです。
image.png

.list {
  display: block;
  border-radius: 20px;
  margin: 20px;
  width: 150px;
  overflow: hidden;
}
.item {
  border: solid 1px gray;
  box-sizing: border-box;
}
2
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?