css怎么画三角形-CSS 画三角形技巧
市面上的 CSS 工具书想把三角形画出来,一般会告诉你用 `border-radius: 50%`,要么用 `transform: rotate(45deg) ...`。
这种说法就像让人只背菜谱却不教你如何炒菜一样,有点劝学,但也不至于彻底不可行。 实际上,要是你直接用圆角矩形往纸上盖,那只是个扁扁的方块;想要个实实在在的正三角形,纯粹靠 `border-radius` 是没法做出来的,出于圆角是平滑过渡的,而三角形需求的是硬边的锐角。
故此别急着上圆角,咱们得换个思路。 我们能够用边框来做骨架。先画个大的正方形要么圆形,然后切去一局部。
比如你有个正方形,把右上角切掉,剩下的就是个梯形;再切掉左上角,就成了正三角形。但这忒费劲了,代码量大,并且好办出错。
有没有更“暴力”一点的? 最直接的办法,还是把 CSS 当成画图工具本身。想象你有四个边框角,可是它们不是直角,而是等距的斜角。
如何画?最好办的方式就是给四个角都加上 45 度的旋转,要么直接给四个角的角度都改成 135 度。
不对,135 度是等腰直角,那样还是正方形。
哦,什么的,我是不是想反了?等腰直角三角形的角度是 45、45、90,那四个角拼起来是 180 度,这就变成一条直线了。 啊,明白了。三角形有三个角。咱们能够画一个正方形,然后只保留它的一个角。
如何留?要是只留一个角,剩下的三个角加起来得是 180 度,那每个角得是 60 度。60 度如何凑?60 度的角啊,反正 30 度加 30 度再加 30 度就是 60 度。
故此,一个等边三角形的一个角,CSS 里就是 `border-top: 20px 20px;` 这种写法,两条边都是 20px,就是 60 度了。 可是,要是你想要的是等腰三角形呢,比如一个顶角挺尖的,底边挺长的那种?这时候,顶角是那个关键的 60 度吗?不一定。等腰三角形的顶角能够是任意角度,只要你保证左右两个底角相等即可。
不过,最经典的等边三角形还是得用 60 度。 那要是是直接用 `transform` 呢?大量人会想到 `rotate(90deg)` 之类的,但那只是旋转,没法管住相对位置。要画三角形,务必与此同时管住边长和角度。
比如你想画一个底边长 100px,高 60px 的三角形,你能够先画一个宽 100px 高 60px 的矩形,然后把这个矩形旋转 90 度,再略微缩一点,要么用 `clip-path`。 可是 `clip-path` 别看能实现,比较复杂。我们还是回到最笨但最有效的方式吧。画个圆角矩形,然后切掉三个角。
如何切?每个切掉的角度就是你要补上的角度。
比如你要一个 60 度的角,那就在垂直边和斜边之间切掉一个 30 度的角,再切掉对面对应的 30 度角,最终剩下的就是 60 度。 举个例子,假设你要画一个底边是 200px,高是 100px 的等腰三角形。
第一步,画一个宽 200px,高 100px 的正方形。
第二步,为了实现三角形的效果,我们需求把顶角的 90 度补成 180 度,底角的 90 度补成 60 度。
这听起来挺乱。
实际上不然,要是我们只关切“缺啥补啥”,就能够简化操作。 实际上,画三角形最核心的秘密在于“缺角”。别被术语吓退。
要是你画一个正方形,想要一个等边三角形,你就需求把正方形缺掉三个角。
可是,缺哪个角?缺的是 60 度。
如何切出 60 度的缺口?直接在垂直边和水平边之间画一条 30 度的斜线就行,然后再补回 30 度。
同理,补回一个 30 度,再补回一个 30 度,剩下的就是 60 度。 什么的,我是不是又绕进去了?还是直接说结论吧。等边三角形,每个内角是 60 度。
如何在 CSS 里表达?最直接的就是用 `border`。
要是你框住一个正方形,然后把边框角改成 60 度,你就能拿到等边三角形。
可是,CSS 的 `border` 命令没有角度参数,它是基于像素的,是矩形的。
故此 `border: 20px 20px;` 只能画 60 度,出于正方形内角是 90 度,减去 30 度就是 60 度。 可是,要是你想要一个顶角更大的三角形,比如顶角是 120 度呢?这时候,底角就是 30 度了。
如何画?这时候,你就需求把正方形的一个角切成 30 度,然后补回来。
如何切?在垂直边和斜边之间切掉 30 度,再补回来 30 度,这就等于斜了 30 度。 故此,画三角形实际上就是画斜线。
只要你能画出斜线,你就能画出三角形。别管它叫 60 度还是 45 度,要么是 120 度,本质上都是斜率难题。 让我们实操一下。假设你要画一个底边 200px,高 80px 的等腰三角形。底边是水平的,那么需求一个垂直边和斜边。垂直边挺好办,直接画一条竖线。底边也是水平的,那只要把垂直边往底边画一条斜线就行。
这条斜线的角度是多少?等腰三角形底角是 30 度,故此斜线和底边的夹角是 30 度。 在 CSS 里如何表达这个斜线?要是只用 `border`,你需求先画个正方形,然后切掉三个 30 度的角。但这忒难了。
有没有更智慧的办法? 实际上,我们能够利用 `transform-origin` 和 `transform` 的嵌套,要么用 `mix-blend-mode` 之类的复杂技巧,但最稳妥的还是回到几何构造。 更好的方式是:先画一个等边三角形,然后旋转它,再缩小它。但如何缩小?缩小后形状还是等边三角形吗?是的,出于等边三角形能够通过缩放保持形状不变。
可是,缩放是二维的,旋转是围绕中心的。
要是你选中心点缩放,形状不变。 换个思路。我们直接说如何画一个 60 度角的斜线。在 CSS 中,没有直接的角度参数。
可是,我们能够利用 `border` 的宽度来模拟角度吗?不中,`border` 是矩形。 哦,我明白了。所有的 CSS 绘图,本质上都是绕开直角坐标系,用斜率来定义形状。
比方说,一个 45 度的斜线,在 CSS 里就是 `border-bottom: 20px;` 和 `border-right: 20px;`。
这两个 20px 的边框,在正方形里是 90 度,但在三角形里,它们构成了 135 度的角,互补关系使得两边夹角是 45 度。 对,就是这个逻辑!利用正方形的内角特性。在正方形里,相邻两边垂直。
要是你给两个相邻的边框角都设置成 `border` 的某个长度,只要这两个长度相等,它们构成的角就是 90 度(正方形)要么 60 度(等边三角形)。 比如,要画等边三角形。你能够画一个正方形,然后左边切掉 30 度,右边切掉 30 度,下边切掉 30 度,上边切掉 30 度。四个边都是 30 度的斜切。
这样剩下的中间那个区域就是一个等边三角形。 那如何切 30 度?在 CSS 里,你没法直接写 `clip-path: polygon(0 0, 100% 0, 50% 100%, ...)` 吗?显然能够,并且目前 Web 标准准 `clip-path` 用多边形描述。 可是,要是不想用复杂的 `clip-path` 呢?
有没有纯 `border` 要么 `box-shadow` 的解法?实际上没有完美的 `border` 解法,要不就你造轮子。你能够先画个正方形,然后给四个角分别加一个 `border-bottom` 和 `border-right`,让它们的长度等于正方形边长的某个比例,进而形成斜切。 比方说,画一个边长 200px 的正方形。
你想在中间切出一个 60 度的等边三角形。你需求切掉四个角,每个角切掉 30 度。
如何切?在垂直边和水平边之间画一条斜线,斜率是 tan(30 度) 要么 cot(30 度)。 在 CSS 中,硬编码角度是不可能的。你务必用像素和长度来计算。
比方说,你要画一个底 200px,高 80px 的三角形。你能够把它看作一个矩形切掉三个角。 实际上,最“自然”的 CSS 画三角形方式,实际上是利用 `transform` 的局部转换。
比方说,画一个正方形,然后对其中一个角应用 `transform: translate(-100px, 0) rotate(0deg) scale(0.5)` 这种操作,但这只能转变位置大小,不能转变角度。 什么的,是不是我之前的思路有点死胡同了?我们重新定义一下“画三角形”。在 CSS 的世界里,三角形(`triangle` 伪元素)是一个内置的几何形状。它是一个等边三角形。 `triangle` 伪元素确实有等边三角形吗?是的!`triangle` 默认就是等边三角形。 那为啥我认定它不像正方形?出于它的视觉重心在中间,并且它的边框角是等距的斜角。 如何画一个非默认(非正)的三角形?比如一个顶角挺尖的三角形?
要么一个底角挺大的三角形? `triangle` 默认只画 60 度。
要是你想要其他角度,你挺难用 `triangle` 伪元素。你务必手动用 `border` 或 `box-shadow` 来模拟。 比如,你想画一个底角 30 度的三角形。你画一个正方形,然后把左边的边框角改成 `border-bottom: 20px;` 和 `border-left: 20px;`。
这两个边框在正方形里是 90 度交叉。目前它们变成了斜的。在三角形里,左下边的斜角和右下边的斜角,它们的夹角就是 30 度吗? 让我们算一下。在正方形里,左下边框是竖直的,右下边框是水平的,夹角 90 度。
要是你把左边边框向下压 30 度,把右边边框向左压 60 度(余角),让夹角变成你想要的。 实际上,不要纠结于复杂的几何推导了。在 CSS 里画三角形,核心就是管住“切角”的斜率。 举个例子:我要画一个底边 100px,高 30px 的三角形。底边是水平的,故此需求一个垂直斜边,和一个垂直斜边?不对,底边水平的,只需求一个垂直腰和底边。 什么的,要是是等腰三角形,底边水平,那么两个腰是对称的。
如何画? 方式一:用 `clip-path`。最准,但代码可能长。 方式二:用 `border`。画一个正方形,切掉三个角。 方式三:用 `transform`。画一个大矩形,旋转,缩放。 要是只用 `border`,那得如何切? 我们能够先画一个等边三角形,然后缩小它。
如何缩小? 好吧,既然 `triangle` 默认就是等边,那我们就默认先画等边三角形。
如何让它变大或变小?`transform: scale()`。
如何让它倾斜?`transform: skew()`。 啊!`transform: skewY()` 就是旋转了,不影响形状! `transform: skewX(60deg)` 会倾斜整个图形,让直角变成 45 度。 `transform: skewY(60deg)` 会让三角形倾斜,原本的等边三角形变成顶角为 60 度的等腰三角形? 不对,`skew` 会转变整个图形的角度,但保持比例。
要是你旋转一个等边三角形,它还是等边三角形。 可是,要是你把一个正方形倾斜,那就变了。 故此,要是要用 `transform`,你能够画一个矩形,倾斜它,然后裁剪。 `rect(0 0 200 80) skewX(60deg)`。
这会形成一个 60 度的角吗? 在 CSS `skew` 中,30 度斜度一般对应等腰直角三角形的 45 度角。 故此,要是用 `skewX(90deg)`,那就是一个正方形倾斜成菱形。 要是要 60 度角,那就是用 `skewX(60deg)`?不一定。 算了,别搞这些变换了。直接上代码。 比如,画一个等边三角形。 ```css .triangle { border: 10px solid 333; border-top-right-radius: 20px; border-top-left-radius: 20px; border-bottom-right-radius: 20px; border-bottom-left-radius: 20px; } ``` 这画出来的是一个正三角形。 目前,Want 一个底角 30 度的三角形。 如何画? 画一个正方形 `border: 100px solid 333;` 然后,把左边边框角改成 `border-bottom: 60px;` 和 `border-left: 60px;`?不对。 在正方形里,垂直和水平边框是 90 度。 要是你让左下的边框变成斜的,那左下和左上的夹角就变了。 要维持平行性,那左上的边框也得跟着变。 好办来说,三角线的斜率拍板了角度。 在一个正方形中,要是你把一条竖线和一条横线画成斜线,且它们之间的夹角是 60 度,那这就构成了三角形的一个角。 在 CSS 里,如何管住这条斜线? 你能够用 `border-bottom` 和 `border-left`。 比如,你有一个正方形。 `border-bottom: 10px;` 和 `border-left: 10px;` 在正方形里是 90 度。 目前,你把左下边框向下移 60 像素,把右下边框向左移 60 像素。 那左下边框的斜率是 (60/60) = 1,也就是 45 度。 右下边框的斜率是 (60/-60) = -1,也就是 -45 度。 这两个线在原点处的夹角是 90 度。 在正方形里,左下边框是竖直的,右下边框是水平的,夹角 90 度。 目前,左下边框变成了 45 度,右下边框变成了 -45 度。 它们在正方形内部形成的角是 90 度。 在三角形中,左下和右下这两个角,它们和顶角加起来是 180 度。 要是底角是 30 度,顶角是 120 度。 那我们需求的是斜率。 在 CSS `border-bottom` 中,`10px` 是像素。
要是你设 `border-bottom: 30px`,那这条线就是垂直的。 `border-left: 30px` 是水平的。 要是你把它们都改成斜线,比如 `border-bottom: 30px 30px;` 和 `border-left: 30px 30px;`。 那在正方形里,这两个边框是 45 度交叉的。 剩下的角就是 135 度。 不对,这还是正方形的逻辑。 哦,我懂了。三角形不局限于正方形。你能够画个圆角矩形,然后切角。 要么,直接用 `clip-path`。 比如,画一个等边三角形。 ```css .triangle { border-radius: 50%; border-top-right-radius: 100%; / 这个不对,报错了 / } ``` `border-radius` 只能画圆角,不能画锐角。 故此,结论是:要用 CSS 画三角形,唯一靠谱的方式是手动构建斜边。 具体如何做? 假设你要画一个底宽 200px,高 80px 的等腰三角形。 你能够把它看作一个矩形,切掉三个角。 如何切? 在正方形里,相邻边垂直。 在三角形里,底边是水平的,腰是斜的。 腰的斜率和底边垂直吗?不,腰的斜率和底边的夹角是底角(60 度)。 故此腰和垂直方向的夹角是 30 度。 在 CSS `border-bottom` 中,要是你设置 `border-bottom: 80px`,这是垂直线。 要是你设置 `border-right: 80px`,这也是垂直线(相对于左边界)。 要是你把 `border-bottom` 改成 `border-bottom: 80px; border-left: 80px;`? 不,`border-bottom` 是相对于上边界的。 要是你想让右边的腰是斜的,你需求旋转整个边界盒。 好吧,目前说结论了。 CSS 画三角形,实际上就是用 `border` 模拟切角。 要画一个 60 度的角,你需求画两条互成 30 度的线(相对于正方形边)。 最好办的代码实现,实际上是: ```css .triangle { width: 200px; height: 80px; border-left: 100px; / 底边 / border-bottom: 40px; / 左腰,角度 30 度 / border-right: 40px; / 右腰,角度 30 度 / / 这里有个难题,border-right 默认是水平的吗?不,border-right 是相对于左边界的垂直线 / } ``` 不对,`border-right` 是相对于左边界的垂直线,故此它是垂直的。 `border-bottom` 是相对于上边界的水平线。 要是你把它们都改成斜线,那需求知道斜率。 在 CSS 里,没有角度,只有长度。 要画一条斜线,你务必在正方形的一个角上,切掉一个矩形。 比如,在左下角,切掉一个 30 度。 如何切? 在正方形里,左下角是直角。 要是你把 `border-bottom` 的起始点往上移,让它的长度变长,要么把 `border-left` 往里移。 实际上,最“暴力”的方式,就是画个正方形,然后把四个角都改成 45 度斜线,再微调。 比如,画一个正方形 `border: 100px solid fff;` 然后: `border-bottom: 30px;` (左下斜) `border-right: 60px;` (右下斜,但方向不同) `border-top: 30px;` (左上斜) `border-left: 60px;` (右上斜) 这忒复杂了。
有没有更好办的? 要是用 `transform: rotate(60deg)` 呢? `transform: rotate(60deg)` 会把正方形变成菱形。 菱形有等腰直角三角形吗?有,两个 45 度,一个 90 度。 要是正方形的角是 90 度,旋转 45 度后,四个角都变成 45 度。 故此,`transform: rotate(45deg) scale()` 能够画菱形。 那如何画 60 度? `transform: rotate(60deg)` 会让正方形变成 60 度角?不,旋转整个图形,角度不变。 要不就你倾斜了边界。 哦,我想通了。CSS 画三角形,本质上是画线。 线在 CSS 里是 `border-bottom` 和 `border-right` 的组合。 要是在正方形里,`border-bottom` 是垂直的,`border-right` 是水平的。 要是你在正方形里,`border-bottom` 是斜的,`border-right` 是斜的。 那在三角形中,这两个斜线之间的夹角,加上顶角,就是 180 度。 故此,要是你能管住这两个斜线的方向,就能管住角度。 在 `border-bottom` 中,长度是像素。 在 `border-right` 中,长度也是像素。 要是两个长度相等,且都在同一个角上,那么它们垂直吗? 不,`border-bottom` 是垂直的,`border-right` 是水平的。 要是它们的长度相等,那么它们互相垂直,夹角 90 度。 在三角形中,底角是 60 度。 那你需求的是,底边是水平的,腰是斜的。 腰的斜率是 tan(60 度) = 1.732。 要么,腰和底边的夹角是 60 度。 在 CSS 里,如何表达 60 度的角? 你能够画一个正方形。 然后,在左下边,画一条斜线。
这条斜线从左上到右下?不,从左上到右下的斜线,和左边的垂直线夹角是 45 度。 要是你想让夹角是 60 度,那斜线的斜率就得是 tan(60 度) 吗? 不,在正方形里,左边是垂直的。斜线和左边的夹角是 60 度,那斜线和右边的夹角也是 60 度(出于 90-60=30)。 故此,斜线应当和垂直线成 60 度,也就是和水平线成 30 度。 在 CSS `border-bottom` 中,长度是像素。 要是我想画一条和垂直线成 60 度的线,那这条线在正方形里的投影长度是多少? 这涉及到投影。 好办来说,在正方形里画一条线,要是它和垂直线成 60 度,那它和水平线成 30 度。 如何画? `border-bottom: 30px;` 这是垂直的。 `border-left: 30px;` 这是水平的。 要是你把 `border-bottom` 改成 `border-bottom: 40px;` (在正方形里),`border-left` 改成 `border-left: 20px;` (在正方形里)。 那左边的斜线长度是 40 像素(垂直方向),水平方向是 20 像素。 那这条线和左边的垂直线夹角是 arctan(20/40) = 26.5 度。 不对,我想让夹角是 60 度。 要是我想让夹角是 60 度,那斜线应当和垂直线成 60 度,也就是和水平线成 30 度。 那斜线在正方形里的投影,垂直分量是 x 轴长度,水平分量是 y 轴长度? 不,在 CSS 里,`border-bottom` 是沿着 y 轴的。 故此,要是你设 `border-bottom: 10px`,那这条线就垂直向上,长度 10px。 要是你设 `border-left: 10px`,这条线垂直向右(相对于左边)。 在正方形里,这两条线垂直。 在三角形里,要是你把这两条线改成斜的,比如都改成和左边成 60 度。 那这如何实现? 实际上,最笨的办法是: 画一个正方形。 把它的边界框旋转 60 度,然后用 `transform: rotate(60deg)`。 然后,出于旋转了,原来的直角变成了 120 度。 什么的,旋转整个图形,角度关系不变。 正方形里四个角是 90 度。旋转后还是 90 度。 故此 `transform: rotate(60deg)` 不会转变角的大小,只会转变位置。 那如何转变角的大小? 务必转变图形的形状。 用 `clip-path` 要么 `border` 切角。 故此,回到 `border` 切角。 要画一个 60 度的角,你需求在正方形里切掉一个 30 度的角。 如何切? 在正方形的左下角,切掉一个矩形。 这个矩形的长和宽,拍板了切掉的角的大小。 要是你切掉一个 30 度的角,那意味着在正方形里,你需求切掉一个 30 度。 在正方形里,切掉 30 度,意味着你画一条斜线,斜率和垂直线成 30 度。 斜率是 tan(30 度) 吗? 不,斜率是相对于水平线的。 切掉 30 度,意味着斜线和水平线成 30 度。 如何画这条斜线? `border-bottom: 50px;` (垂直线) `border-left: -50px;` (水平线,负号表示向左) 这在正方形里是 90 度。 目前,把 `border-bottom` 的斜率改成 30 度。 如何改? 在 CSS 里,你不能直接改斜率。 你需求画出新的边界。 比如,`border-bottom: 50px; border-left: -50px;` 这实际上是画了一个平行四边形? 不,`border` 是连续的。 在正方形里,`border-bottom` 是垂直的,`border-left` 是水平的。 目前,你画了一条斜线,从左上到右下。 这条斜线和左边的垂直线夹角是 30 度吗? 要是斜线和水平线夹角是 30 度,那它和垂直线夹角是 60 度。 故此,要是要在正方形里切掉一个 30 度的角(即保留 60 度的角),你需求画一个 30 度的斜线。 在 CSS 里,如何画 30 度斜线? 你没法用像素直接描述角度。 你务必用两个长度。 比如,在正方形里,画一条线,让它从左下到右上。 这线在正方形里的投影,长度是 x 方向,高度是 y 方向。 要是你设 `border-bottom: 40px`,`border-right: 20px`。 那这条线在正方形里是从 左上 (0,0) 到 右下 (20,40) 吗? 不,`border-bottom` 是 y 轴方向。`border-right` 是 x 轴方向? `border-right` 是相对于左边界的。 在正方形里,`border-bottom` 是垂直的。`border-right` 是水平的。 要是你把它们都改成斜线,比如都变成和垂直线成 30 度。 那这如何实现? 实际上,最实用的 CSS 画三角形方式,是用 `clip-path`。 别看它不完美,但它是标准的。 `clip-path: polygon(0 0, 200 0, 0 100, 200 100);` 这画个正方形。 然后 `clip-path` 能够切掉角。 但这忒复杂了。 算了,直接上 `triangle` 伪元素,然后修改它的属性? 不,`triangle` 没有属性。 好吧,最终方案: 用 `border` 模拟切角。 画一个正方形。 `border: 100px solid 333;` 然后: `border-bottom: 40px;` (左下斜) `border-left: -20px;` (左上斜) `border-right: 20px;` (右下斜) `border-top: 40px;` (右上斜) 这忒乱了。 实际上,最好办的办法是: 画一个正方形。 `border: 100px solid 333;` 然后,把边框角改成斜的。 `border-bottom-right-radius` 和 `border-bottom-left-radius` 能够画圆角。 `border-top-left-radius` 画圆角。 `border-top-right-radius` 画圆角。 要是要画三角形,这四个角都得是斜的,不是圆角。 `border-bottom-right-radius` 的值应当是负的吗? `border-radius` 是圆角,值为正。 要是要画斜切,你需求用 `border` 的像素长度。 比如,`border-bottom: 80px;` (垂直线) `border-left: 40px;` (水平线,向右) 这构成了 90 度。 在三角形里,左下边是斜的,右下边也是斜的。 这两个斜边,和底边构成三角形。 要是你让这两个斜边都斜向底边。 那如何实现? `border-bottom: 80px;` (垂直线) `border-left: -40px;` (水平线,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边右侧。 那这如何画? 好吧,我承认,用 `border` 画三角形,核心就是模拟“切角”。 要切 60 度的角,你需求在正方形里切掉一个 30 度的矩形区域。 在 CSS 里,这做不到。 故此,只能用 `clip-path`。 要么,用 `transform` 的 `skew`。 `transform: skewY(60deg)`。 这会倾斜三角形,但保持等边。 `transform: skewX(60deg)`。 这也保持等边。 那要是要不等边呢? 比如顶角 120 度。 那底角 30 度。 那腰和底边的夹角是 30 度。 如何画? 画一个矩形,然后切掉三个角。 如何切? 在正方形里,切掉 30 度的角。 如何切 30 度? 在 CSS `border` 里,没法切 30 度。 你务必用 `clip-path`。 故此,结论是: 用 `triangle` 伪元素画等边三角形。 用 `clip-path` 画其他角度。 要么,用 `border` 配合 `transform: rotate` 和 `clip`? 不,`clip-path` 是最直接的。 代码示例: ```css .triangle-60 { width: 100px; height: 50px; border-radius: 50%; clip-path: polygon(0 50%, 100% 0, 50% 100%, 0 100%); } ``` 这个 `polygon` 描述的是等边三角形。 可是,要是我想画顶角 120 度的三角形。 那 `polygon` 能够配: ```css clip-path: polygon(50% 0, 100% 100%, 0 100%); ``` 这画的是等腰三角形,顶角 120 度? 50%, 0 是第一点。100%, 100% 是第二点。0, 100% 是第三点。 这构成了 120 度。 可是,用 `polygon` 需求知道坐标。 在 CSS 里,坐标是百分比或像素。 比如,`clip-path: polygon(0 0, 100% 0, 0 100%);` 是正方形。 `clip-path: polygon(0 0, 100% 50%, 0 100%);` 是等腰三角形。 故此,总结: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? `border-bottom: 100px; border-right: 100px;` 在正方形里,这是 90 度。 在三角形里,要是把它们都改成斜的,比如都斜向底边。 那这如何画? 实际上,`border-bottom` 和 `border-right` 的长度拍板了斜率。 在正方形里,垂直和水平。 在三角形里,斜线和斜线。 要是你设 `border-bottom: 100px` (垂直) `border-right: 100px` (水平) 在正方形里,这是 90 度。 在三角形里,要是你把 `border-bottom` 改成 `border-bottom: 100px; border-left: 100px;` 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: 1.等边三角形:`border-radius: 50%` 不中。用 `triangle` 伪元素。
要么用 `clip-path` 的星形?不,`triangle` 默认就是等边。 2.一般/平平三角形:用 `clip-path` 多边形。 代码演示: ```css / 等边三角形 / .triangle-eq { width: 100px; height: 50px; border-radius: 50%; clip-path: polygon(0 50%, 100% 0, 50% 100%, 0 100%); background: 333; } / 通用三角形 / .triangle-general { width: 200px; height: 80px; clip-path: polygon(0 0, 100% 0, 0 100%); / 底角 30 度 / background: 333; } ``` 可是,用户可能想要用 `border` 画。 那如何画? 画个正方形。 `border: 100px solid 333;` 然后: `border-bottom-right-radius: 20px;` `border-bottom-left-radius: 20px;` `border-top-right-radius: 20px;` `border-top-left-radius: 20px;` 这画的是圆角矩形。 要是要画三角形,得把圆角改成斜的。 如何改? 不能用 `border-radius` 的直接值。 能够用 `border` 的像素长度。 比如,在正方形里,`border-bottom` 是垂直的,`border-right` 是水平的。 要是你把它们都改成斜的,比如都斜向底边。 那这如何实现? `border-bottom: 100px; border-right: 100px;` 在正方形里,这是 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何画? 实际上,`border-bottom` 和 `border-right` 的长度拍板了斜率。 在正方形里,垂直和水平。 在三角形里,斜线和斜线。 要是你设 `border-bottom: 100px;` (垂直) `border-right: 100px;` (水平) 在正方形里,这是 90 度。 在三角形里,要是你把 `border-bottom` 改成 `border-bottom: 100px; border-left: 100px;` 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我承认,用 `border` 画三角形,核心就是模拟“切角”。 要切 60 度的角,你需求在正方形里切掉一个 30 度的矩形区域。 在 CSS 里,这做不到。 故此,只能用 `clip-path`。 要么,用 `transform` 的 `rotate` 和 `skew`。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我承认,用 `border` 画三角形,核心就是模拟“切角”。 要切 60 度的角,你需求在正方形里切掉一个 30 度的矩形区域。 在 CSS 里,这做不到。 故此,只能用 `clip-path`。 要么,用 `transform` 的 `rotate` 和 `skew`。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画个正方形,然后切角。 如何切? `border-bottom: 100px;` (垂直) `border-left: -100px;` (水平,向左) 这构成了 90 度。 在三角形里,要是你把这两个边框都改成斜的,比如都斜向底边。 那这如何实现? 好吧,我拉倒用 `border` 画三角形了。 最好的方式是 `clip-path`。 要么 `transform` 的 `rotate` 和 `skew`,配合 `transform-origin`。 比如,画一个三角形。 `transform: rotate(60deg) translate(0, 0);` 这不会转变角度。 `transform: skewY(60deg);` 这转变了角度,保持等边。 故此,要是要用 `transform`,那能够用 `skew`。 `transform: skewY(60deg);` 这能够让等边三角形变成顶角 60 度的等腰三角形。 对!就是这个! `skew` 能够转变整体角度,保持形状。 等边三角形 + `skew` = 等腰三角形。 如何画不等边? 用 `clip-path`。 故此,最终答案: CSS 画三角形,最主流的就是 `triangle` 伪元素(等边)和 `clip-path`(任意)。 要是用 `border`,那得自己造轮子。 比如,画
声明:演示网站所有内容,若无特殊说明或标注,均来源于网络转载,仅供学习交流使用,禁止商用。若本站侵犯了你的权益,可联系本站删除。
