【发布时间】:2026-02-12 23:05:02
【问题描述】:
【问题讨论】:
-
对于 CSS3 方法,请考虑SO Answer。
【问题讨论】:
简而言之,是的 this is possible with CSS alone(甚至没有 CSS2),但我强烈建议您使用背景图片。
像这样做 CSS 的问题是阴影。它呈现三角形的方式只是一个在对角线上透明的边框。换句话说,你的影子仍然是一个盒子,看起来不像你想要的那样。
我看到很多人开始使用 CSS3。他们通常希望一切都动态完成,而不是使用背景图像。一旦完成,大量的 CSS 几乎不会为页面做任何美观的事情。实际上,只需要它们最终得到的 10-15% 即可达到与图像相同的效果。
背景图片没有任何问题,它们不会过时,而且它们肯定不会很快停止工作。我的建议是,对于需要图像的东西坚持使用背景图像,并保存 CSS3 以获得特殊效果。这听起来很无聊而且很老套,但它很有效,而且要容易得多。
【讨论】:
gradient-black-vertical-200px-80.png。我真的不想这样做。
这似乎是一个相对简单的 CSS 项目;简单,这里是相对的,因为我看到人们仅使用 CSS 制作动画 Twitter Fail Whale。
对于三角形边缘(我认为这对您来说是棘手的部分),您需要做的是使用 CSS 矩阵变换(在 W3Schools 详细说明),然后只使用 box-shadow 作为边框, 和 box-shadow: inset 用于插入效果。之后,只需使用适当的填充和文本对齐,使文本在对象的每个部分居中。
编辑
考虑使用before 和after 伪元素来实现这一点。或者,您可以为每个部分使用两个倾斜的<div>s 堆叠在一起;但是,这不会给你一个有吸引力的阴影。
【讨论】:
我认为单独使用 CSS 是不可能的。您将不得不使用背景图像。您将能够使用 :after 和 :before 伪类创建锥形边缘效果。但是会面临内部阴影的问题。
当我在 Google 帮助中心看到面包屑时,我曾尝试单独使用 css3 创建类似的面包屑(类似,但使用背景图片),但无法做到。
http://support.google.com/adsense/bin/answer.py?hl=en&answer=1354760
我尝试使用 CSS(:after 和 :before)伪元素来实现,而不添加任何其他 html 元素。
【讨论】: