底部三角形覆盖另一个图像的图像

Nic*_*lai 16 html css svg css-shapes

在图像底部创建箭头很简单.

但是,如果第二张图像不是背景而是第一张图像之后的另一张图像,这是否可能达到这样的效果: 图像底部三角形图像

我在codepen.io上创建了"pen"

.wrap {
  position: relative;
  overflow: hidden;
  width: 70%;
  height: 200px;
  margin: 0 auto;
}
.wrap img {
  width: 100%;
  height: auto;
  display: block;
}
.arrow {
  position: absolute;
  bottom: 0;
  width: 100%;
}
.arrow:before,
.arrow:after {
  content: '';
  position: absolute;
  bottom: 100%;
  width: 50%;
  box-sizing: border-box;
}
.arrow:before {
  right: 50%;
  border-bottom: 20px solid #000;
  border-right: 20px solid transparent;
}
.arrow:after {
  left: 50%;
  border-bottom: 20px solid #000;
  border-left: 20px solid transparent;
}
Run Code Online (Sandbox Code Playgroud)
<div class="wrap">
  <img src="https://farm8.staticflickr.com/7187/6895047173_d4b1a0d798.jpg" />
  <div class="arrow"></div>
</div>
<div class="wrap">
  <img src="http://i.imgur.com/EinPKO3.jpg" />
  <div class="arrow"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

web*_*iki 10

在您链接的答案中,有两种方法可以提供您正在寻找的输出.

如果你看第4种方法(在图像上有一个三角形的工具提示.),显示的技术与当你悬停名字时facebook用于工具提示的技术相同.

在非普通内容上使用三角形的工具提示

虽然这种方法有更好的浏览器支持,但我更喜欢使用svg方法(在链接的帖子中也提供)和clipPath元素,使三角形位于底部.

适应您的用例,它可能如下所示:

*{margin:0;}
svg{
  display:block;
  position:relative;
  margin-bottom:-3.5%;
  z-index:50;
}
svg:nth-child(2){
  z-index:49;
}
svg:nth-child(3){
  z-index:48;
}
Run Code Online (Sandbox Code Playgroud)
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 600 400">
  <defs>
    <clipPath id="clip">
      <path d="M0 0 H600 V380 H320 L300 400 L280 380 H0z" />
    </clipPath>
  </defs>
  <image xlink:href="http://lorempixel.com/600/400/people/1" width="600" height="400" clip-path="url(#clip)"/>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 600 400">
  <image xlink:href="http://lorempixel.com/600/400/nature/1" width="600" height="400" clip-path="url(#clip)"/>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 600 400">
  <image xlink:href="http://lorempixel.com/600/400/abstract/6" width="600" height="400" clip-path="url(#clip)"/>
</svg>
Run Code Online (Sandbox Code Playgroud)

请注意,为简单起见,演示使用具有相同宽高比的图像.为了可维护性,每个图像都在自己的svg标记中(例如:添加或删除图像)

输出:

底部三角形在另一个图像上的图像

有关MDN的更多信息:


Him*_*ara 6

嗨,我没有向您展示深度代码,但根据您所需的输出图像

我已经按照自己的方式创建了以下内容,这里是代码

请注意:这不适用于Internet Explorer和FireFox

在FireFox剪辑路径支持中唯一的url值

有关浏览器支持,请查看以下参考链接

浏览器支持剪辑路径

.boundry{   
    margin-top:100px;
    margin-left:100px;
    width:50%;
    margin-bottom:100px;    
}
.arrow_box {
    height:180px;
	position: relative;
	background: #88b7d5;	  
    padding:15px;     
    text-align:center;    
    color:white;
    -webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 80%, 46% 80%, 51% 90%, 56% 80%, 0% 80%);
    clip-path: polygon(0% 0%, 100% 0%, 100% 80%, 46% 80%, 51% 90%, 56% 80%, 0% 80%);
}
.arrow_box:nth-child(1){         
    background:url('http://3.bp.blogspot.com/-lz3nDbV440A/VO4QpcN4ZCI/AAAAAAAAN94/PAYUtUysb-4/s1600/happy-holi-images-2015%2B(9).jpg');  
    color:grey;
    z-index: 5;
}
.arrow_box:nth-child(2){
    margin-top: -42px;
    margin-bottom: -35px;      
    background:url('http://blog.jimdo.com/wp-content/uploads/2014/01/tree-247122.jpg');
}
Run Code Online (Sandbox Code Playgroud)
<div class="boundry" >
    <div class="arrow_box">
       <h1 class="logo">first image</h1>
    </div>
    <div class="arrow_box">
       <h1 class="logo">second image</h1>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

这是这个的工作演示代码

演示代码