在CSS中是否可以制作这样的东西?我想要一个头部的图片,但我希望下一个部分被剪切成三角形,以便上面的图片显示出来。
我知道如何用边框创建实心CSS三角形(例如:http://www.dailycoding.com/Posts/purely_css_callouts.aspx),但在这种情况下,我需要做相反的事情(从蓝色部分中“取出”一个“块”),或者将三角形制作为图像,使其与所连接的图像完全对齐。如果我可以取出一个“块”,那可能会更容易。
为了使它变得更加复杂,我还将上面的图像设置为background-attachment:fixed
和background-size:cover
。因此,当浏览器大小变大时,图像会按比例缩放。
如果我不能仅使用CSS完成它并需要一个图像,则如何制作正确的图像组合,以使三角形与文本保持对齐,如果文本在页面上水平居中对齐会怎么样?我正在考虑像这样使用两个长的div
扩展到边缘,以及一个精确宽度的图像在中间,其中三角形是透明的:
_____________________________ ___ ______________________ _________________________
| (really wide for margin)|| V (960px wide image) || (really wide box again) |
只使用CSS能完成吗?或者也许有一个SVG解决方案(我对SVG不太熟悉)?如果这肯定仅是“渐进增强”,那么只在现代浏览器中使用的解决方案也可以。
(:):before
/(:):after
伪元素来代替#one
/#two
,以便保持标记更清晰:http://jsfiddle.net/V2yyH/ - Ilya Streltsynbackground-size: cover
和background-attachment: fixed
时,我感到很高兴 :) http://jsfiddle.net/nhqKb/4/ - Matt