1

そのように、親のdivシャドウに続く外部シャドウで折り畳みコーナーを行うにはどうすればよいですか:

私がしたいこと

ありがとう。

4

2 に答える 2

0

少し複雑ですが、これを試してみましたが、うまくいきます

.box {
  width: 200px;
  height: 100px;
  position: relative;
  padding: 25px;
  background: none;
}

.box .content {
  position: relative;
  z-index: 2;
}

.box .the_background {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
}

.box .the_background .square-top-right {
  width: 250px;
  height: 125px;
  position: absolute;
  top: 0;
  left: 0;
  background: #fff;
  display: block;
  z-index: 3;
}

.box .the_background .square-bottom-left {
  width: 225px;
  height: 150px;
  position: absolute;
  bottom: 0;
  left: 0;
  background: #fff;
  display: block;
  z-index: 3;
}

.box .the_background:after {
  content: '';
  width: 35px;
  height: 35px;
  background: #ddd;
  position: absolute;
  z-index: 2;
  right: 7px;
  bottom: 7px;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  transform: rotate(45deg);
  -webkit-box-shadow: 0px 0px 10px #000;
  -moz-box-shadow: 0px 0px 10px #000;
  box-shadow: 0px 0px 10px #000;
}

.box .the_background .square-shadow {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
}

.box .the_background .square-shadow:before {
  content: '';
  position: absolute;
  left: 0;
  width: 250px;
  height: 125px;
  -webkit-shadow: 0px 0px 10px #000;
  -moz-shadow: 0px 0px 10px #000;
  box-shadow: 0px 0px 10px #000;
}

.box .the_background .square-shadow:after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 225px;
  height: 25px;
  -webkit-shadow: 0px 0px 10px #000;
  -moz-shadow: 0px 0px 10px #000;
  box-shadow: 0px 0px 10px #000;
}
<div class="box">
  <div class="content">
    Lorem ipsum...
  </div>
  <div class="the_background">
    <div class="square-top-right"></div>
    <div class="square-bottom-left"></div>
    <div class="square-shadow"></div>
  </div>
</div>

于 2015-12-17T15:41:07.727 に答える
0

CSS Backgrounds and Borders モジュール レベル 4 では、次のcorner-shapeプロパティが導入されています。

デフォルトでは、0 以外の border-radii は、影響を受ける角を丸くする 1/4 楕円を定義します。ただし、場合によっては、他のコーナー形状が必要になることもあります。このcorner-shapeプロパティは、半径の再解釈を指定して、他の角の形状を定義します。

あなたの場合、次のように設定する必要がありますbevel

境界半径は、コーナーで斜めのスライスを定義します。

コードは次のようになります

corner-shape: bevel;
border-radius: 0 0 30px;
box-shadow: 0 0 5px #000;

ただし、この仕様はドラフトであり、実装の準備ができていません。したがって、ブラウザはそれを実装していません。ただし、コーナー形状のプレビューを使用して、どのように見えるかを確認できます。

于 2015-12-17T15:29:52.370 に答える