html - 试图产生褪色的利润
问题描述
我正在尝试在我的网站上为左右边距产生一个褪色的渐变,但我能想到的唯一方法是在这个小提琴上找到:https ://jsfiddle.net/btzr1vox/
body {
background-color: #fafafa;
}
.box-1 {
background-image: linear-gradient(to left, rgb(250, 250, 250) 0%, rgb(0, 0, 0, 1) 15%);
display: inline-block;
width: 50%;
}
.box-2 {
background-image: linear-gradient(to left, rgb(0, 0, 0) 85%, rgb(250, 250, 250, 1) 100%);
float: left;
width: 50%;
}
.row {
max-width: 114rem;
margin: 0 auto;
}
.col-1-of-2 {
width: calc((100% - #{6rem}) / 2);
}
.color {
color: white;
}
.column-1 {
margin-right: 3rem;
}
.column-2 {
margin-left: 3rem;
}
它可以工作,但是它将页面分成我不想要的列,因为我必须为网站的每个部分重复该过程。这看起来很麻烦,特别是如果我想改变列的宽度,比如一个块只占页面的 1/3,而另一个 2/3,等等。
解决方案
我建议将白色渐变与包含文本的元素分开,这样它们就不会相互依赖。更简单:如果您创建两个元素并position: absolute;
在它们上应用属性,您可以在任何地方重复使用它们:在整个背景之上或每个部分。
如果您遇到覆盖渐变的文本问题,您当然可以将保存文本的元素padding
设置width
为与渐变相同的值,这样它们就不会碰到它们。
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body, html {
width: 100%;
height: 100%;
}
body {
position: relative;
background-color: #36393f;
}
.gradient-left {
position: absolute;
top: 0;
left: 0;
width: 60px;
height: 100%;
background-image: linear-gradient(
to right,
rgba(255, 255, 255, 1) 0%,
rgba(255, 255, 255, 0) 100%
);
}
.gradient-right {
position: absolute;
top: 0;
right: 0;
width: 60px;
height: 100%;
background-image: linear-gradient(
to left,
rgba(255, 255, 255, 1) 0%,
rgba(255, 255, 255, 0) 100%
);
}
<div class="gradient-left"></div>
<div class="gradient-right"></div>
推荐阅读
- c - 需要帮助调试 C 连接程序
- excel - 有没有办法根据列标题和行在矩阵中创建非空白单元格的计数?
- emacs - 加载路径 ivy-* 匹配任意序列号
- python - 如何制作嵌套字典
- android - 电话验证后的 Cloud Firestore 文档检查
- php - PHP date_create_from_format 使用对象给出 bool(false) 错误
- c - 为什么 (while .. getchar()) 不会在 C 中写入我的文件?
- javascript - 调用 setState 后渲染不起作用
- swift - 如何使用我的 UITapGestureRecognizer 启用捏合手势?
- r - 当我在 geom_jitter 中使用 aes(shape) 时,各个点不再与覆盖的 geom_col 图中的各自组对齐