HTML CSS 实现金字塔

最近工作中有这么个需要,要画一个类似金字塔的东西,长这样的在这里插入图片描述
接下来该怎么实现呢?

三角形都知道要用 div 的 border 了

直接上代码

// html 部分
...
<!-- 箭头使用了 bootstrap 的图标字体 -->
<link rel="stylesheet" type="text/css" href="lib/Bootstrap/css/bootstrap.min.css"/>
<script src="js/jquery-1.12.4.js" type="text/javascript" charset="utf-8"></script>
...
<body>
  <div class="container">
    <div class="sanjiao">
      <div class="sj sj1"></div>
      <div class="sj sj2"></div>
      <div class="sj sj3"></div>
      <div class="sj sj4"></div>
      <div class="sj sj5"></div>
      <div class="comarow rightarow glyphicon glyphicon-arrow-right"></div>
      <div class="comarow leftarow glyphicon glyphicon-arrow-left"></div>
      <div class="describe describe1">极高危</div>
      <div class="describe describe2">&nbsp;&nbsp;&nbsp;&nbsp;</div>
      <div class="describe describe3">中高危</div>
      <div class="describe describe4">&nbsp;&nbsp;&nbsp;&nbsp;</div>
      <div class="describe describe5">&nbsp;&nbsp;&nbsp;&nbsp;</div>
    </div>
    <div class="tuli">
      <div class="color color1"><div class="bgcolor bgcolor1"></div><div>极高危</div></div>
      <div class="color color2"><div class="bgcolor bgcolor2"></div><div>高危</div></div>
      <div class="color color3"><div class="bgcolor bgcolor3"></div><div>中高危</div></div>
      <div class="color color4"><div class="bgcolor bgcolor4"></div><div>中危</div></div>
      <div class="color color5"><div class="bgcolor bgcolor5"></div><div>低危</div></div>
    </div>
  </div>
</body>
// css 部分
<style>
/* 主体三角形 */
.sanjiao{
   width: 400px;
   height: 300px;
   display: inline-block;
   position: relative;
 }
 .sj{
   margin: 0 auto;
   height: 0;
   border-top: 0 solid transparent;
   border-right: 30px solid transparent;
   border-left: 30px solid transparent;
   border-bottom-width: 60px;
   border-bottom-style: solid;
   box-sizing: content-box;
 }
 .sj1{
   width: 0;
   border-bottom-color: #ed3535;
 }
 .sj2{
   width: 60px;
   border-bottom-color: #ed5835;
 }
 .sj3{
   width: 120px;
   border-bottom-color: #f39d38;
 }
 .sj4{
   width: 180px;
   border-bottom-color: #f9c21a;
 }
 .sj5{
   width: 240px;
   border-bottom-color: #71c438;
 }
 /* 指向箭头 */
 .comarow{
   color: #FF0000;
   font-size: 30px;
   position: absolute;
 }
 .rightarow{
   top: 255px;
   margin-left: 10px;
 }
 .leftarow{
   top: 255px;
   margin-left: 360px;
 }
 /* 每层名称 */
 .describe{
   position: absolute;
   margin-left: 179px;
 }
 .describe1{
   top: 22px;
 }
 .describe2{
   top: 82px;
 }
 .describe3{
   top: 142px;
 }
 .describe4{
   top: 202px;
 }
 .describe5{
   top: 262px;
 }
 /* 图例 */
 .tuli{
  display: inline-block;
   vertical-align: top;
   margin-left:20px;
 }
 .color{
   height: 20px;
   line-height: 20px;
   font-size: 14px;
   margin-top: 20px;
 }
 .color div{
   display: inline-block;
 }
 .color .bgcolor{
   width: 30px;
   height: 20px;
   vertical-align: middle;
   margin-right: 10px;
 }
 .color1{
   color: #ed3535;
 }
 .color1 .bgcolor1{
   background: #ed3535;
 }
 .color2{
   color: #ed5835;
 }
 .color2 .bgcolor2{
   background: #ed5835;
 }
 .color3{
   color: #f39d38;
 }
 .color3 .bgcolor3{
   background: #f39d38;
 }
 .color4{
   color: #f9c21a;
 }
 .color4 .bgcolor4{
   background: #f9c21a;
 }
 .color5{
   color: #71c438;
 }
 .color5 .bgcolor5{
   background: #71c438;
 }
</style>

效果如图在这里插入图片描述
当然我的箭头是需要移动的,接下来我们让它动

// js 部分
  setLevel(3);
  // level 1-5代表从上到下的层
  function setLevel(level) {
    switch (level) {
      case 1:
        changeArrow("15px", "130px", "236px");
        break;
      case 2:
        changeArrow("75px", "100px", "270px");
        break;
      case 3:
        changeArrow("135px", "70px", "300px");
        break;
      case 4:
        changeArrow("195px", "40px", "330px");
        break;
      case 5:
        changeArrow("255px", "20px", "350px");
        break;
      default:
        console.log("未匹配到项");
        break;
    }
 }
 // 改变左右箭头的位置
 function changeArrow(top, rightArrow, leftArrow) {
   $(".rightarow").css({
     "top": top,
     "margin-left": rightArrow
   });
   $(".leftarow").css({
     "top": top,
     "margin-left": leftArrow
   });
 }
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现HTML CSS轮播图,可以按照以下步骤进行操作: 1. 创建HTML结构,使用\<div>元素包裹轮播图容器,并在其中添加\<div>元素作为图片项的容器。每个图片项需要设置一个类名,例如item1,item2等,并在其中添加一个\<img>元素作为图片的标签。同时,为了实现轮播效果,可以添加一个具有唯一标识的\<input>元素,以及对应的\<label>元素,用于切换图片。 2. 使用CSS设置轮播图容器的样式,包括设置宽度、高度、位置等。可以使用position: relative;来将轮播图容器设置为相对定位。 3. 使用CSS设置图片项的样式,并使用background-image属性为每个项设置不同的背景图片。可以使用background-size: cover;来将背景图片扩展至足够大,以覆盖背景区域。同时,可以使用position: absolute;和left属性来设置每个图片项的位置。 4. 使用CSS设置切换按钮的样式。可以使用CSS伪类选择器:checked来表示选中状态的\<input>元素,通过选择器的方式来控制图片项的显示与隐藏。可以将\<label>元素设置为轮播图容器的子元素,并使用position: absolute;和top属性来调整按钮的位置。 5. 使用CSS过渡效果transition来控制图片项的切换动画。可以使用transition: all 0.5s;将所有属性的变化都设置为0.5秒的过渡效果。 通过以上步骤,就可以实现一个基于HTMLCSS的轮播图效果。具体的代码实现请参考和中的引用内容。 : 环绕倒影加载特效 html css 气泡浮动背景特效 html css 简约时钟特效 html css js 赛博朋克风格按钮 html css 仿网易云官网轮播图 html css js 水波加载动画 html css 导航栏滚动渐变效果 html css js 书本翻页 html css 3D立体相册 html css 霓虹灯绘画板效果 html css js 记一些css属性总结(一) Sass总结笔记 position: absolute; 绝对定位1. transition: all 0.5s; 给个过渡效果,后面切图时好看。 background-size: cover; 把背景图像扩展至足够大,以使背景图像完全覆盖背景区域。 4.每张图片自己的样式,就是都先偏移相应距离: .item1{ background-image: url(./img/1.jpg); } .item2{ background-image: url(./img/4.jpg); left: 100%; } .item3{ background-image: url(./img/11.jpg); left: 200%; } : :checked CSS 伪类选择器表示任何处于选中状态的radio(), checkbox () 或(“select”) 元素中的option HTML元素(“option”)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值