CSS三角形和IMG

Posted

技术标签:

【中文标题】CSS三角形和IMG【英文标题】:CSS triangle over and IMG 【发布时间】:2015-01-13 14:16:22 【问题描述】:

我正在尝试做你在这张图片顶部看到的三角形部分:

我尝试了几种方法都没有成功。

如果图像改变大小,我需要三角形做出响应。 而且我不希望容器 div 因为三角形而扩展。 但我无法修复 div 高度,因为如果图像大小发生变化,它也会发生变化。 我不想在 photoshop 中制作三角形并导出图像,因为当您单击它时,您也会看到三角形。

知道如何以正确的方式实现这一目标吗?

这是我尝试过的:

http://jsfiddle.net/37uufbg3/

.arrow-down 
    width: 0; 
    height: 0; 
    border-left: 20px solid transparent;
    border-right: 20px solid transparent;   
    border-top: 20px solid #f00;

.image
    width:100%;


<div class="imageTriangle">
    <img src="image.jpg">
    <div class="arrow-down"></div>
</div>

【问题讨论】:

请提供一些关于jsbin等的示例页面。 jsfiddle.net/37uufbg3 图片上有透明三角形的相关问题:***.com/questions/23758922/transparent-arrow-triangle 【参考方案1】:

对图像使用伪元素:after

演示 - http://jsfiddle.net/victor_007/dvv7bg76/

这个例子不适用于 ie8

.image:after 
    content:'';
    width: 0; 
    height: 0; 
    border-left: 20px solid transparent;
    border-right: 20px solid transparent;   
    border-top: 20px solid #f00;
    position:absolute;
    left:50%;
    top:0;
    transform:translatex(-50%); /** making it horizontally center **/

或者对于较旧的浏览器,您也可以使用它

演示 - http://jsfiddle.net/victor_007/dvv7bg76/1/

这将适用于 ie8

.image:after 
    content:'';
    width: 0;
    height: 0;
    border-left: 20px solid transparent;
    border-right: 20px solid transparent;
    border-top: 20px solid #f00;
    position:absolute;
    left:50%;
    top:0;
    margin-left:-20px; /** for older browsers **/

【讨论】:

非常感谢。太棒了。你现在是学习CSS的好地方。每周我都会面对一个我没有答案的新情况。在线培训网站 ...【参考方案2】:

试试这个

.arrow-down 
  position:absolute;
  top:0;
  left:50%;
  width:0; 
  height:0; 
  border-left:20px solid transparent;
  border-right:20px solid transparent;   
  border-top:20px solid black;

.image
  position:absolute;
  top:0;
  left:0;
  width:100%;

img
  width:100%;
<div class="image">
   <img src="http://lorempixel.com/400/200/">
   <div class="arrow-down"></div>
</div>

如果我需要进一步澄清,请添加评论。

【讨论】:

以上是关于CSS三角形和IMG的主要内容,如果未能解决你的问题,请参考以下文章

CSS三角形和IMG

用css创建一个三角形

解释下用div+css画三角形的原理.代码:

纯CSS实现小圆点和三角形图案

怎么利用CSS3绘制三角形

css实现的透明三角形