html - 如何在图片上做纯CSS全高和真正透明的折叠效果?

标签 html css layout transparency transparent

灵感来自 this linkthis link ,我正在尝试通过两个要求制作纯 CSS 折叠效果:

  1. 完全透明的背景以显示 <IMAGE>在它后面(!)
  2. 能够使用 <DIV> 的完整高度其中的元素 (!)

我试过让我的工作正常,但右上角没有变得透明。如果我更换...

border-top: 60px solid red;

border-top: 60px solid transparent;

然后矩形框的背景通过它出现。有没有办法用纯 CSS 解决方案来解决这个问题?如果是如何?如果不是,那么接近 CSS 的替代方案是什么?代码/坐标应该是可读的、可解释的,并且不需要像 inkscape 这样的基于矢量的程序就可以很容易地被人类改变。

我卡住的DEMO:
https://jsfiddle.net/cg7hoyt3/

最佳答案

也许使用linear-gradient 代替纯色作为主 div 的背景。

border-width 和 gradient stop 的比率为 1/sqrt(2) = .7071

如果您使用 CSS 自定义属性或 CSS 预处理器,这将变得更加简单。

Codepen Demo of variable use

body {
  background-image: url("http://hdbackgroundspic.com/wp-content/uploads/2017/09/drop-of-water-background.jpg");
}

div {
  width: 230px;
  height: 230px;
  margin: 50px auto;
  background: linear-gradient(-135deg, transparent, transparent 45px, gold 45px, gold);
  position: relative;
}

div::after {
  content: " ";
  position: absolute;
  top: 0;
  right: 0;
  height: 0px;
  width: 0px;
  z-index: 2;
  border-width: 30px; /* note .7071 of gradient-stop */
  border-style: solid;
  border-color: transparent transparent yellow yellow;
  filter: drop-shadow(-2px 6px 6px rgba(0, 0, 0, .5));
}
<div></div>

关于html - 如何在图片上做纯CSS全高和真正透明的折叠效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46321249/

相关文章:

html - 从 Div 页脚中删除文本

android - 如何在android中创建像WhatsApp这样的聊天消息 block ?

java - 可见性设置为 false 后的 SWT 组件重新布局

jquery - div 显示如果 block jquery

html - 如何防止用户删除文本框中的文本

javascript - 如何将旋转的子 div 居中到旋转的父 div 并坚持到父 div 的顶部?

CSS 显示无/ block - 页面打开时有特定的 DIV

android - 有没有办法让布局动画化?[Android]?

html - 在调整桌面显示以保持移动设备的完整性时遇到问题

javascript - 使用 Bootstrap 的响应式 3 列布局