質問するログイン新規登録

回答編集履歴

2

CodePenサンプルの追加

2023/08/08 18:41

投稿

hatena19
hatena19

スコア34377

answer CHANGED
@@ -20,6 +20,8 @@
20
20
 
21
21
  `padding-bottom: 10vw;` は中身のコンテンツがclip-pathによって隠れるのを防ぐ目的です。
22
22
 
23
+ [CodePenサンプル](https://codepen.io/hatena19/pen/MWzREYj)
24
+
23
25
  別案
24
26
  ---
25
27
  解決済みですが、デザインレイアウトのためにHTMLに不必要な要素を追加しているのが気になりましたので、質問の2つ目のサンプルのHTMLで実現する方法も提示しておきます。
@@ -51,3 +53,5 @@
51
53
  背景のグラデーションはbefore疑似要素につけて背面に配置します。
52
54
  translatey()で上にずらして親要素のグレーの背景が見えるようにして境界線とします。
53
55
  次のブロックは、ネガティブマージンで重ねます。
56
+
57
+ [CodePenサンプル](https://codepen.io/hatena19/pen/zYMXgaq)

1

別案の追記

2023/08/08 18:08

投稿

hatena19
hatena19

スコア34377

answer CHANGED
@@ -18,4 +18,36 @@
18
18
  境界線の太さは、`transform: translatey(-5px);` のpxの数値で、
19
19
  調整してください。
20
20
 
21
- `padding-bottom: 10vw;` は中身のコンテンツがclip-pathによって隠れるのを防ぐ目的です。
21
+ `padding-bottom: 10vw;` は中身のコンテンツがclip-pathによって隠れるのを防ぐ目的です。
22
+
23
+ 別案
24
+ ---
25
+ 解決済みですが、デザインレイアウトのためにHTMLに不必要な要素を追加しているのが気になりましたので、質問の2つ目のサンプルのHTMLで実現する方法も提示しておきます。
26
+
27
+ ```css
28
+ .block {
29
+ background-color: #c8c8c8;
30
+ clip-path: polygon(0 0, 100% 0, 100% calc(100% - 10vw), 50% 100%, 0 calc(100% - 10vw));
31
+ padding-bottom: 10vw;
32
+ position: relative;
33
+ }
34
+ .block::before {
35
+ content: "";
36
+ width: 100%;
37
+ height: 100%;
38
+ position: absolute;
39
+ background-image: linear-gradient(to bottom, #c8c8c8, #eeeeee);
40
+ clip-path: polygon(0 0, 100% 0, 100% calc(100% - 10vw), 50% 100%, 0 calc(100% - 10vw));
41
+ z-index: -1;
42
+ transform: translatey(-5px);
43
+ }
44
+ .block-2 {
45
+ height: 300px;
46
+ background-color: yellow;
47
+ margin-top: -12vw;
48
+ padding-top: 12vw;
49
+ }
50
+ ```
51
+ 背景のグラデーションはbefore疑似要素につけて背面に配置します。
52
+ translatey()で上にずらして親要素のグレーの背景が見えるようにして境界線とします。
53
+ 次のブロックは、ネガティブマージンで重ねます。