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

質問編集履歴

1

うまくはいっていないのですが、塗りつぶしのハートを2つ重ねてやってみた方法を載せました。

2016/07/31 08:48

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,47 +1,83 @@
1
1
  CSSで塗りつぶしのハートを表現する方法は調べれば出てくるのでわかるのですが、塗りつぶしなしの枠線のみを表現する方法がわかりません。
2
2
  もしわかる方がいましたら教えて下さい。
3
3
 
4
- 塗りつぶしのハート以下のように作れました。
4
+ 塗りつぶしのハートを重ねる方法も以下のようにしたのですが、曲線部分だけが少し太くなってしまうので、なんとか直せないかと思っています
5
5
 
6
+ ![イメージ説明](89de485370791c32f2e0a3e72e950333.png)
7
+
8
+
9
+ ```HTML
10
+ <div class="heart">
11
+ <span class="heart-arrange"></span>
12
+ </div>
13
+ ```
14
+
15
+
6
16
  ```CSS
7
- #heart {
17
+ @mixin heart($size, $color) {
8
18
  position: relative;
9
19
  width: 100px;
10
20
  height: 90px;
21
+ -webkit-transform: scale($size);
22
+ -moz-transform: scale($size);
23
+ -ms-transform: scale($size);
24
+ -o-transform: scale($size);
25
+ transform: scale($size);
26
+
27
+ &:before, &:after{
28
+ position: absolute;
29
+ content: "";
30
+ left: 50px;
31
+ top: 0;
32
+ width: 50px;
33
+ height: 80px;
34
+ background: $color;
35
+ -moz-border-radius: 50px 50px 0 0;
36
+ border-radius: 50px 50px 0 0;
37
+ -webkit-transform: rotate(-45deg);
38
+ -moz-transform: rotate(-45deg);
39
+ -ms-transform: rotate(-45deg);
40
+ -o-transform: rotate(-45deg);
41
+ transform: rotate(-45deg);
42
+ -webkit-transform-origin: 0 100%;
43
+ -moz-transform-origin: 0 100%;
44
+ -ms-transform-origin: 0 100%;
45
+ -o-transform-origin: 0 100%;
46
+ transform-origin: 0 100%;
47
+ }
48
+
49
+ &:after{
50
+ left: 0;
51
+ -webkit-transform: rotate(45deg);
52
+ -moz-transform: rotate(45deg);
53
+ -ms-transform: rotate(45deg);
54
+ -o-transform: rotate(45deg);
55
+ transform: rotate(45deg);
56
+ -webkit-transform-origin: 100% 100%;
57
+ -moz-transform-origin: 100% 100%;
58
+ -ms-transform-origin: 100% 100%;
59
+ -o-transform-origin: 100% 100%;
60
+ transform-origin: 100% 100%;
61
+ }
11
62
  }
63
+
64
+
12
- #heart:before,
65
+ .heart {
66
+ position: relative;
67
+ @include heart(0.3, red);
68
+ z-index: 1;
69
+
13
- #heart:after {
70
+ .heart-arrange {
71
+ display: inline-block;
14
72
  position: absolute;
15
- content: "";
16
- left: 50px;
17
73
  top: 0;
18
- width: 50px;
19
- height: 80px;
74
+ right: 0;
20
- background: FF9999;
75
+ bottom: 0;
21
- -moz-border-radius: 50px 50px 0 0;
22
- border-radius: 50px 50px 0 0;
23
- -webkit-transform: rotate(-45deg);
24
- -moz-transform: rotate(-45deg);
25
- -ms-transform: rotate(-45deg);
26
- -o-transform: rotate(-45deg);
27
- transform: rotate(-45deg);
28
- -webkit-transform-origin: 0 100%;
29
- -moz-transform-origin: 0 100%;
30
- -ms-transform-origin: 0 100%;
31
- -o-transform-origin: 0 100%;
32
- transform-origin: 0 100%;
33
- }
34
- #heart:after {
35
76
  left: 0;
36
- -webkit-transform: rotate(45deg);
37
- -moz-transform: rotate(45deg);
38
- -ms-transform: rotate(45deg);
39
- -o-transform: rotate(45deg);
77
+ @include heart(0.9, white);
40
- transform: rotate(45deg);
41
- -webkit-transform-origin: 100% 100%;
42
- -moz-transform-origin: 100% 100%;
43
- -ms-transform-origin: 100% 100%;
44
- -o-transform-origin: 100% 100%;
45
- transform-origin :100% 100%;
78
+ z-index: 10;
79
+
80
+ }
81
+
46
82
  }
47
83
  ```