Page 140 - css揭秘
P. 140

background:
                                linear-gradient(-150deg,
                                    transparent 1.5em, #58a 0);
                        }
                        .note::before {
                            content: '';
                            position: absolute;
                            top: 0; right: 0;
                            background: linear-gradient(to left bottom,
                                transparent 50%, rgba(0,0,0,.4) 0)
                                100% 0 no-repeat;
                            width: 3em;
                            height: 1.73em;
                        }

                        到了这里,我们只不过是把图 4-32 中的效果用伪元素又实现了一遍。
                    下一步将把折页三角形的 width 和 height 对调,以此改变它的方向,这样
                    就可以得到跟折页缺口对称的三角形,而不是一个可以补足折页缺口的三角
                    形。然后,我们再以逆时针 30°((90° – 30° ) –30°)来旋转这个折页三角形,
                    这样可以让它的斜边与折线平行:


                        .note::before {
                            content: '';
                            position: absolute;
                            top: 0; right: 0;
                            background: linear-gradient(to left bottom,
                                transparent 50%, rgba(0,0,0,.4) 0)
                                100% 0 no-repeat;
                            width: 1.73em;
                            height: 3em;
                            transform: rotate(-30deg);
                        }

                        在图 4-34 中,你可以看到这页纸在经过上述调整之后会是什么样子。
                    如你所见,我们基本上已经接近目标了,但还需要把这个折页三角形再挪动
                    一下,以便让这两个三角形(深色的三角形折页和折角的三角形缺口)的斜                                    图 4-34
                    边重合。从现在的情况来看,它在水平和垂直方向上都需进行移动,因此                                     我们快要接近目标了,但还需要
                    要算出这两个偏移量似乎困难重重。我们可以让事情变得更简单一些:把                                     移动这个折页三角形
                    transform-origin 设置为 bottom right,让三角形的右下角成为旋转的中
                    心,这样就可以让它的右下角保持固定。

                        .note::before {
                            /* [其余样式] */
                            transform: rotate(-30deg);
                            transform-origin: bottom right;
                        }

                        如图 4-35 所示,现在只需在垂直方向上向上移动这个折页三角形就                                图 4-35
                    可以了。为了算出实际要移动的距离,我们又要动用几何学了。如你在图                                     添加 transform-origin:  bott-
                                                                                         om  right; 会让事情变得简单一
                                                      y
                                                         3
                    4-36 中所见,所需的垂直偏移量是 x −= −                3 1.267 949 192≈  ,我们这里
                                                                                         些:只需要在垂直方向上移动这
                    取整为 1.3em:                                                           个折页三角形

                                                                                               19 折角效果        109







          ඀ࠡ  JOEC
   135   136   137   138   139   140   141   142   143   144   145