首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为图像制作波浪效果

为图像制作波浪效果
EN

Stack Overflow用户
提问于 2020-11-09 22:48:17
回答 1查看 111关注 0票数 3

代码语言:javascript
复制
* {
  box-sizing: border-box;
}

.container{
  display:flex;
  flex-direction: column;
  width: 600px;
  height: 600px;
}

.image{
  background-repeat: no-repeat;
  background-size: 100% 100%;
  background-image: url('https://cdn.wallpaperhub.app/cloudcache/1/b/5/8/e/f/1b58ef6e3d36a42e01992accf5c52d6eea244353.jpg')
}

.box-1, .box-2{
  display:flex;
  flex-direction: row;
  flex-basis: 50%;
}

.image, .content{
  border: 1px solid black;
  flex-basis: 50%;
}

.content{
  padding: 30px;
}
代码语言:javascript
复制
<div class="container">
  <div class="box-1"><div class="image"></div>
  <div class="content">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ullam, non. Molestias voluptas velit quae itaque natus nam odio obcaecati minima recusandae enim eos mollitia est animi incidunt,</div></div>
  <div class="box-2"><div class="content">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ullam, non. Molestias voluptas velit quae itaque natus nam odio obcaecati minima recusandae enim eos mollitia est animi incidunt, beatae iure perspiciatis.</div>
  <div class="image"></div></div>
</div>

根据上面的结果,我想创建如下内容:

因此,我们的想法是为两个图像创建圆角,但我希望将列连接在一起,因此圆角应该连接在我显示的蓝线的位置

有谁知道怎么解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2020-11-09 23:01:17

考虑clip-path,然后简单地将图像的flex- make做得更大:

代码语言:javascript
复制
* {
  box-sizing: border-box;
}

.container {
  display: flex;
  flex-direction: column;
  width: 600px;
  height: 600px;
}

.image {
  background-size: 100% 100%;
  background-image: url('https://cdn.wallpaperhub.app/cloudcache/1/b/5/8/e/f/1b58ef6e3d36a42e01992accf5c52d6eea244353.jpg')
}

.box-1,
.box-2,
.content{
  display: flex;
  flex-basis: 50%;
}

.content {
  padding: 30px;
}

/* below the added code */
.image {
  flex-basis:70%;
}
.box-1 .image {
 clip-path: circle(farthest-side at 20% 50%);
}
.box-2 .image {
 clip-path: circle(farthest-side at 80% 50%);
}
代码语言:javascript
复制
<div class="container">
  <div class="box-1">
    <div class="image"></div>
    <div class="content">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ullam, non. Molestias voluptas velit quae itaque natus nam odio obcaecati minima recusandae enim eos mollitia est animi incidunt,</div>
  </div>
  <div class="box-2">
    <div class="content">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ullam, non. Molestias voluptas velit quae itaque natus nam odio obcaecati minima recusandae enim eos mollitia est animi incidunt, beatae iure perspiciatis.</div>
    <div class="image"></div>
  </div>
</div>

响应式版本的另一个想法:

代码语言:javascript
复制
* {
  box-sizing: border-box;
}

.container {
  display: flex;
  flex-direction: column;
  height: 600px;
}

.image {
  background-size: 100% 100%;
  background-image: url('https://cdn.wallpaperhub.app/cloudcache/1/b/5/8/e/f/1b58ef6e3d36a42e01992accf5c52d6eea244353.jpg')
}

.box-1,
.box-2{
  display: flex;
  flex-basis: 50%;
}

.content {
  padding: 30px;
  flex:1;
}

/* below the added code */
.image {
  --d:600px;
  flex-basis:calc(50% + 20px);
}
.box-1 .image {
 clip-path: circle(var(--d) at calc(100% - var(--d)) 50%);
}
.box-2 .image {
 clip-path: circle(var(--d) at calc(var(--d)) 50%);
}
代码语言:javascript
复制
<div class="container">
  <div class="box-1">
    <div class="image"></div>
    <div class="content">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ullam, non. Molestias voluptas velit quae itaque natus nam odio obcaecati minima recusandae enim eos mollitia est animi incidunt,</div>
  </div>
  <div class="box-2">
    <div class="content">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ullam, non. Molestias voluptas velit quae itaque natus nam odio obcaecati minima recusandae enim eos mollitia est animi incidunt, beatae iure perspiciatis.</div>
    <div class="image"></div>
  </div>
</div>

使用CSS掩码:

代码语言:javascript
复制
* {
  box-sizing: border-box;
}

.container {
  display: flex;
  flex-direction: column;
  height: 600px;
}

.image {
  background-size: 100% 100%;
  background-image: url('https://cdn.wallpaperhub.app/cloudcache/1/b/5/8/e/f/1b58ef6e3d36a42e01992accf5c52d6eea244353.jpg')
}

.box-1,
.box-2{
  display: flex;
  flex-basis: 50%;
}

.content {
  padding: 30px;
  flex:1;
}

/* below the added code */
.image {
  --d:300px; /* adjust here to control the curve  */
  flex-basis:calc(50% + 43px); /* and here to rectify the gap */
}
.box-1 .image {
 -webkit-mask:
    linear-gradient(#fff,#fff) left/calc(100% - var(--d)) 100%,
    radial-gradient(circle var(--d) at calc(100% - var(--d)) 50%,#fff 99%,transparent);
 -webkit-mask-repeat:no-repeat;
}
.box-2 .image {
 -webkit-mask:
    linear-gradient(#fff,#fff) right/calc(100% - var(--d)) 100%,
    radial-gradient(circle var(--d) at var(--d) 50%,#fff 99%,transparent);
 -webkit-mask-repeat:no-repeat;
}
代码语言:javascript
复制
<div class="container">
  <div class="box-1">
    <div class="image"></div>
    <div class="content">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ullam, non. Molestias voluptas velit quae itaque natus nam odio obcaecati minima recusandae enim eos mollitia est animi incidunt,</div>
  </div>
  <div class="box-2">
    <div class="content">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ullam, non. Molestias voluptas velit quae itaque natus nam odio obcaecati minima recusandae enim eos mollitia est animi incidunt, beatae iure perspiciatis.</div>
    <div class="image"></div>
  </div>
</div>

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64753845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档