HTML + CSS 环形文字人物介绍

环形文字人物介绍

先看效果(👉完整代码在这里👈
在这里插入图片描述

HTML

<body>
  <div class="info">
    <img class="info-avatar" src="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic4.zhimg.com%2Fv2-2f08406908e855f14ca14b0149505bef_r.jpg&refer=http%3A%2F%2Fpic4.zhimg.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1656419577&t=f9209b4ea663d012282662ba3f9404be" alt="">
    <span style="--i: 1">T</span> 
    <span style="--i: 2">O</span> 
    <span style="--i: 3">M</span> 
    <span style="--i: 4">&</span> 
    <span style="--i: 5">J</span> 
    <span style="--i: 6">E</span> 
    <span style="--i: 7">R</span> 
    <span style="--i: 8">R</span> 
    <span style="--i: 9">Y</span> 
  </div>
</body>

CSS

  1. 初始化全局样式, 设置背景色, 并设置子元素水平垂直居中
body {
  margin: 0;
  padding: 0;
  min-height: 100vh;
  background-color: #34495e;
  display: flex;
  justify-content: center;
  align-items: center;
}
  1. 设置卡片容器样式
.info {
  height: 400px;
  width: 400px;
  border: 1px solid #eee;
  position: relative;
  border-radius: 50%;
}
  1. 设置卡片图片垂直水平居中
.info .info-avatar {
  position: absolute;
  height: 80%;
  width: 80%;
  object-fit: cover;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
}
  1. 设置周围人物介绍
    • 📕关键思路在于: 将每个字所在的 span 设置 absolute 布局, 并以 left center 为中心转动相对应的角度

    • .info span {
        position: absolute;
        height: 100%;
        left: 50%;
        top: 0;
        font-size: 2rem;
        color: #eee;
        transform-origin: left;
        transform: rotate(calc(var(--i) * 40deg));
      }
      
    • 一共 9 个字, 平分 360度, 故每个字依次转动 40deg

    • 📕transform-origin 必须为 left, 如果只写一个属性值 left, 另一个默认为 center. 因为每个字母的宽度不一样, 如果省略了 transform-origin 变换中心变成 center center, 就会造成文字不在一个圈上, 如下图

    • 在这里插入图片描述

    • 📕另外值得注意的地方是, span 的位置是 left: 50%, 此时转动形成的⚪的半径是 info 的边长, 但如果 left: 0; 而且 transform-origin 为默认值的话, 形成的⚪的半径就是 info 的边长的根号 2.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值