当前位置: 首页 > 知识库问答 >
问题:

我怎么能只使用CSS来设计这个设计呢?

鲁泰宁
2023-03-14

我想用纯CSS设计上面的图像。

下面是我到目前为止想出的HTML和CSS:

    <div>
      <input
        className="my_file"
        type="file"
        onChange={(event) => {
          setImageSelected(event.target.files[0]);
        }}
      />
        <svg
          width="20"
          height="18"
          viewBox="0 0 20 18"
          fill="none"
          xmlns="http://www.w3.org/2000/svg"
          className="upload_image_icon"
        >
          <path
            d="M7 0L5.17 2H2C0.9 2 0 2.9 0 4V16C0 17.1 0.9 18 2 18H18C19.1 18 20 17.1 20 16V4C20 2.9 19.1 2 18 2H14.83L13 0H7ZM10 15C7.24 15 5 12.76 5 10C5 7.24 7.24 5 10 5C12.76 5 15 7.24 15 10C15 12.76 12.76 15 10 15Z"
            fill="white"
          
          />
        </svg>
        <Avatar
          src={picture}
          alt="Avatar"
          id="hello"
          className="avatar--profile_image"
        />
    </div>

下面是我的SCSS:

.profile--card_container {
  width: 348px;
  height: 448px;
  // border: 1px solid rgb(211, 211, 211);
  // border-radius: 5px;



  .avatar--profile_image {
    justify-content: center !important;
    margin-bottom: 10px;
    margin-top: 10px;
    margin-left: 6.50rem;

    height: 100px !important;
    width: 100px !important;
    box-shadow: rgba(0, 0, 0, 0.01) 0px 5px 16px 0px,
      rgba(0, 0, 0, 0.10) 0px 0px 0px 0px;
    position: relative;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    background-blend-mode: multiply;
    color: transparent;
    transition: all .3s ease;
    cursor: pointer;
    border: 2px solid rgba(0, 0, 0, 0.54);

    &:after {
      content:'\A';
      position:absolute;
      width:100%; height:100%;
      top:0; left:0;
      background:rgba(0,0,0,0.6);
      opacity:0;
      transition: all 0.5s;
      -webkit-transition: all 0.5s;
    }

    &:hover:after {
      opacity:1;
    }
  }

  input[type=file]::-webkit-file-upload-button {
    cursor: pointer;
  }
    
  .my_file {
    position: absolute;
    outline: none;
    color: transparent;
    box-sizing: border-box;
    transition: 0.5s; 
    margin: 45px 0 0 100px;
    z-index: 1;
    opacity: 0;
    cursor: pointer;
  }

  .upload_image_icon {
    margin: 44px 0 0 144px;
    cursor: pointer;
    position: absolute;
    outline: none;
    box-sizing: border-box;
    z-index: 1;
  }
}

以下是我现在的结果:

我正在努力实现,像我悬停个人资料图片时,图像将覆盖黑色,并出现相机图标。我怎么能那样做?

共有1个答案

闾丘博
2023-03-14

将图像包装在div中。然后使用带有Z索引的pesudo-element,当您悬停div时,onyl会显示该元素,如下面的片段所示:

null

.avatar {
  width: 100px;
  height: 100px;
  position: relative;
}

.avatar img {
  width: 100%;
  object-fit: cover;
  border-radius: 50%;
}

.avatar > div {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  border-radius: 50%;
  background-color: rgba(0, 0, 0, 0.6);
  z-index: 2;
  display: none;
}

.avatar:hover > div {
  display: flex;
  justify-content: center;
  align-items: center;
}
<div class="avatar">
  <img src="https://via.placeholder.com/500x500.jpg">
  <div>Icon</div>
</div>
 类似资料:
  • 我正在尝试改变我的引导网站中与类“navbar-brand”链接的颜色。无论我如何构造css选择器,我似乎都无法改变文本颜色。但是,我知道css正在加载,因为我可以更改navbar的背景颜色。下面是缩短的代码: 我的index.html: 我的main.css: 最终结果:一个深蓝色条,带有默认navbar附带的灰色文本。谢谢你的帮助。 编辑:这里类似的问题对我没有帮助。我能够改变navbar-n

  • 我考虑到用mask遮罩,但是遮罩只会把遮罩元素有像素的地方显示,这样对每个setp都要做一个遮罩层图片。 如果mask可以设置为有像素的地方不显示那就完美了。 不知道有没有什么优雅的解决办法。

  • 我试着做这个计算器,我可以用四种方法,一种是加法,一种是减法,还有.....但我想让它变得尽可能简单。我如何使用一个方法执行4个主要操作,然后在静态main中调用它? 可以将更改为()吗?(那部分是我有问题)

  • Q. 聊聊你作品中有关交互设计的亮点是什么? 通常对于没有实习经验的同学而言,他可能不知道如何回答才算是交互设计的亮点,觉得交互设计的就是画线框图,其实不然。需求分析、用户分析、需求转化、界面布局、信息架构和操作流程等都是交互设计的一部分。可以表达自己将需求转化为设计解决方案的独特处,界面元素布局等细节的优化、以及设计方案使得信息架构层级更清晰或缩短了用户完成任务的流程等。最好可以通过用户测试、用

  • Q. 聊聊你作品中有关交互设计的亮点是什么? 通常对于没有实习经验的同学而言,他可能不知道如何回答才算是交互设计的亮点,觉得交互设计的就是画线框图,其实不然。需求分析、用户分析、需求转化、界面布局、信息架构和操作流程等都是交互设计的一部分。可以表达自己将需求转化为设计解决方案的独特处,界面元素布局等细节的优化、以及设计方案使得信息架构层级更清晰或缩短了用户完成任务的流程等。最好可以通过用户测试、用

  • 我编写了一个程序来解析XML文件,以获取一个名为SerialNum的特定标记值,该值包含在Header标记中。该文件的构造如下: < li >它包含一个标题和一个正文 < li >标题可能包含许多SerialNum标签。我们需要提取最后一个标签的值。 我使用Stax解析器获取SerialNum值,并编写了以下代码: 此代码提取所需的值,但代码质量不是很好:它不容易阅读和维护。它包含一个开关案例,如