RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1411563
Accepted
betepok
betepok
Asked:2022-07-19 17:20:46 +0000 UTC2022-07-19 17:20:46 +0000 UTC 2022-07-19 17:20:46 +0000 UTC

带有底部居中文本的内衬图标

  • 772

我正在尝试制作一个带有方形图标和下方铭文的自适应菜单。我能够将图像放在块的中心,但我不知道如何在每个项目下添加铭文。我想出的只是写一个标签

绝对位置并向下移动,但不能居中

.square {
  width: 76px;
  box-shadow: rgba(46, 45, 36, 0.15) 0px 0px 6px, rgba(46, 45, 36, 0.15) 0px 3px 6px;
  border-radius: 8px;
  height: 76px;
  margin: 8px;
  font-size: 14px;
  margin-bottom: 40px;
  position: relative;
}

.square img {
  margin: auto;
  position: absolute;
  top: 0;
  left: 5px;
  bottom: 0;
  right: 0;
}

.square p {
  position: absolute;
  bottom: -42px;
}
<div class="container-fluid">
  <div class="row justify-content-center">

    <div class="square">
      <img src="/assets/icons/homework.svg" alt="">
      <p>My marks</p>
    </div>

    <div class="square">
      <img src="/assets/icons/exams.svg" alt="">
      <p>Exams</p>
    </div>
    <div class="square"></div>
    <div class="square"></div>
    <div class="square"></div>

  </div>
</div>

html css
  • 1 1 个回答
  • 17 Views

1 个回答

  • Voted
  1. Best Answer
    De.Minov
    2022-07-19T17:36:23Z2022-07-19T17:36:23Z

    所以?

    .square {
      width: 76px;
      box-shadow: rgba(46, 45, 36, 0.15) 0px 0px 6px, rgba(46, 45, 36, 0.15) 0px 3px 6px;
      border-radius: 8px;
      height: 76px;
      margin: 8px;
      font-size: 14px;
      margin-bottom: 40px;
      position: relative;
    }
    
    .square img {
      margin: auto;
      position: absolute;
      top: 0;
      left: 5px;
      bottom: 0;
      right: 0;
    }
    
    .square p {
      width: 100%;
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      top: calc(100% + 5px);
      margin: 0;
      text-align: center;
    }
    <div class="container-fluid">
      <div class="row justify-content-center">
    
        <div class="square">
          <img src="/assets/icons/homework.svg" alt="">
          <p>My marks</p>
        </div>
    
        <div class="square">
          <img src="/assets/icons/exams.svg" alt="">
          <p>Exams</p>
        </div>
        <div class="square"></div>
        <div class="square"></div>
        <div class="square"></div>
    
      </div>
    </div>

    如果您需要解释代码的工作原理,请写,我会告诉您。


    transform: translateX(-50%)允许您将块沿 X 相对于其位置移动块宽度的一半 (-50%),与 一起left: 50%,将在视觉上将块准确地放置在中心,即使父级的宽度小于这个块的宽度。

    我还指定了一个bottom: -42px值而不是top: calc(100% + 5px),这将允许将块p放置在距父级 5px 的位置,无论父级或p.
    因为 当增加p块的大小时,上边缘将保持原位并“向下增长”,bottom: -42px反之,底部将保持原位并“向上增长”。

    body {
      display: flex;
      justify-content: center;
      align-items: center;
      width: 100%;
      min-height: 100vh;
      margin: 0;
    }
    
    .test {
      display: block;
      width: 80px;
      height: 50px;
      border: 2px dashed #f00;
      box-sizing: border-box;
      position: relative;
      text-align: center;
    }
    
    .test:not(:last-child) {
      margin-right: 20px;
    }
    
    .test .p {
      display: block;
      width: 50px;
      height: 50px;
      background-color: #00f;
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      -webkit-animation: resize 2s linear infinite;
      animation: resize 2s linear infinite;
    }
    
    .i1 .p {
      bottom: -57px;
    }
    
    .i2 .p {
      top: calc(100% + 7px);
    }
    
    @-webkit-keyframes resize {
      40%,
      60% {
        height: 100px;
      }
      10%,
      90%,
      100% {
        height: 50px;
      }
    }
    
    @keyframes resize {
      40%,
      60% {
        height: 100px;
      }
      10%,
      90%,
      100% {
        height: 50px;
      }
    }
    <div class="test i1">bottom
      <div class="p"></div>
    </div>
    
    <div class="test i2">top
      <div class="p"></div>
    </div>

    • 2

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5