zoukankan      html  css  js  c++  java
  • css流程图、步骤图,流程线与环节分别实现,支持单环节、多环节情况。scss生成CSS

    适用于分步骤操作的页面导航图

    实现结果如下

    图片描述

    上图对应下述代码,稍作修改可以生成下图。
    图片描述
    css代码如下:

    @charset "UTF-8";
    /**单列宽度 单行高度  列数 行数*/
    body {
      font-size: 12px;
      color: #000000;
      font-family: "Microsoft Yahei";
      overflow-x: hidden;
      background: #ffffff; }
    
    /**单列宽度 单行高度  列数 行数*/
    .web-width {
       1200px;
      margin: 20px auto; }
    
    .for-liucheng {
       1200px;
      margin: 0 0 0 0;
      height: 160px;
      padding: 0 0 0 0;
      position: relative; }
    
    .liulist {
      float: left;
       300px;
      height: 10px;
      background: #CCCCCC;
      margin-top: 60px; }
    
    .liulists {
      float: left;
       300px;
      height: 100%; }
    
    .liutextbox {
      position: absolute;
       100%;
      height: 160px; }
    
    .liutext {
      float: left;
       300px;
      text-align: center;
      margin-top: 53px; }
    
    .liutexts {
      float: left;
       300px;
      height: 100%;
      text-align: center;
      margin-top: -7px; }
    
    .liutext_2 {
      display: inline-block;
      float: left;
       100%;
      height: 42px;
      text-align: center;
      padding-bottom: 0px; }
    
    em {
      display: inline-block;
       24px;
      height: 24px;
      border-radius: 24px;
      background: #BDBDBD;
      text-align: center;
      font-size: 14px;
      line-height: 24px;
      font-style: normal;
      font-weight: bold;
      color: #fff; }
    
    strong {
      display: inline-block;
      height: 16px;
      line-height: 16px;
      font-weight: 400; }
    
    .for-cur em {
      background: #77b852;
      border: 3px solid #ffffff;
      margin-top: -3px; }
    
    .for-ed em {
      border: 3px solid #F0F0F0;
      margin-top: -3px; }
    
    .for-cur strong {
      color: #77b852; }
    
    .liutext:hover {
      cursor: pointer; }
    
    .liutextbox strong:hover {
      text-decoration: underline; }
    
    .liulists table, table tr th, table tr td {
      border: 10px solid #CCCCCC; }
    
    .liulists td {
      height: 30px; }
    
    .liulists table {
       100%;
      text-align: center;
      border-collapse: collapse; }
    

    html 代码如下

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>步骤图示例</title>
    <link type="text/css" href="stylesheets/new_file.css" rel="stylesheet" />
    </head>
    <script type="text/javascript" src="js/jquery-1.8.3-min.js" ></script>
    <script type="text/javascript">
    $(function(){
        $("#A").addClass("for-ed"); //已完成
        $("#B1").addClass("for-ed"); //已完成
    });
        
    function openH(obj)
    {
        //$("#A").addClass("for-cur"); 
        $(".liutext").removeClass("for-cur");
        $(".liutext_2").removeClass("for-cur");
        $(obj).addClass("for-cur");  
        
    }
    </script>
    
    <body style="overflow:hidden"> 
     
       <div class="web-width">
         <div class="for-liucheng">
          <div class="liulist"></div>
          <div class="liulists" style="float:left;overflow:hidden">
           <table>
            <tr><td>&nbsp;</td></tr>
            <tr><td>&nbsp;</td></tr>
            <tr><td>&nbsp;</td></tr>
           </table>
          </div>
          <div class="liulist"></div>
          <div class="liulist"></div>
          <div class="liutextbox">
          <div id="A"  class="liutext" onclick="openH(this);"><em>1</em><br /><strong>填写账户名</strong></div>
            <div id="B"  class="liutexts" >
               <div id="B1"  class="liutext_2" onclick="openH(this);"><em>1</em><br /><strong>第一步</strong></div>
            <div id="B2"  class="liutext_2" onclick="openH(this);"><em>2</em><br /><strong>第二步</strong></div>
             <div id="B3"  class="liutext_2" onclick="openH(this);"><em>2</em><br /><strong>第二步</strong></div>
              <div id="B4"  class="liutext_2" onclick="openH(this);"><em>2</em><br /><strong>第二步</strong></div>
            </div>
           <div id="C"  class="liutext" onclick="openH(this);"><em>3</em><br /><strong>设置新密码</strong></div>
           <div id="D"  class="liutext" onclick="openH(this);"><em>4</em><br /><strong>完成</strong></div>
          </div>
         </div><!--for-liucheng/-->    
       </div><!--web-width/-->
      
    <div style="text-align:center;margin:100px 0; font:normal 14px/24px 'MicroSoft YaHei';">
    <p>适用浏览器:IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗.</p>
    </div>
    </body>
    </html>
    

    scss
    第一部分的css,可以通过scss 设置变量生成css ,方便计算每个步骤环节的高度宽度,使得流程线和流程的位置能对应显示,并且此案例的多行线是通过table的border的宽度实现,相关宽高的设置通过scss变量计算,能适应不同的情况的css编写,具体如下

    //sass style
    //-----------------------------------
    
    @charset "utf-8";
    /**单列宽度 单行高度  列数 行数*/ 
    $d 300px;
    $dheight: 30px;
    //横向大环节个数
    $anum: 4;
    //纵向行个数
    $bnum: 4;
    $border: 10px;
    $height:($dheight+$border) * $bnum - $dheight;  
    $allheight:($dheight+$border) * $bnum; 
    //圆圈直径
    $circleA: 24px;
    //文字  
    $textA: 16px;  
    body{font-size:12px;color:#000000; font-family:"Microsoft Yahei"; overflow-x:hidden; background:#ffffff;}
      /**单列宽度 单行高度  列数 行数*/ 
    
    .web-width{ 1200px;margin:20px auto;}
    
    .for-liucheng{ $dwidth *$anum ;margin:0 0 0 0;height: $allheight;padding:0 0 0 0; position:relative;}
    
    .liulist{float:left;$dwidth; height:$border;background:#CCCCCC;margin-top: ($height - $border)/2;}
    .liulists{float:left;$dwidth; height:100%;}
    
    .liutextbox{ position:absolute;100%;height:($dheight+$border) * $bnum;}
    .liutext{float:left;$dwidth;text-align:center;margin-top: ($height - $border)/2-$circleA/2+$border/2;}
    .liutexts{float:left;$dwidth;height:100%; text-align:center;margin-top: -$circleA/2+$border/2;}
    .liutext_2{display:inline-block;float:left;100%; height:$allheight/$bnum+2px;text-align:center;padding-bottom: 0px;}
    
    em{ display:inline-block;$circleA; height:$circleA;border-radius:$circleA; background:#BDBDBD; text-align:center; font-size:14px; line-height:$circleA; font-style:normal; font-weight:bold;color:#fff;}
    strong{ display:inline-block;height:$textA; line-height:$textA; font-weight:400;}
    
    .for-cur em{ background:#77b852;border:3px solid #ffffff;margin-top: -3px;}
    .for-ed em{ border:3px solid #F0F0F0;margin-top: -3px;}
    .for-cur strong{color:#77b852;}
    .liutext:hover
    {
    cursor: pointer; 
    }
    .liutextbox strong:hover
    { 
    text-decoration: underline;
    }
    .liulists table,table tr th, table tr td { border:$border solid #CCCCCC; }
    .liulists td { height: $dheight; }
    .liulists table {  100%;text-align: center; border-collapse: collapse;}  
  • 相关阅读:
    [整理] jQuery插件开发
    windows2008r2安装笔记
    javascript 中 typeof 和 instanceof 的区别
    mysql 复制表结构和表数据
    一个例子明白 javascript 中 for 与 for in 的区别
    实现自己的框架
    Jenkins 前端项目构建报错:Vue packages version mismatch
    linux Auditd 审计工具安装报错
    linux定时压缩日志文件脚本
    Robot Framework 3.1.2 执行测试用例报错
  • 原文地址:https://www.cnblogs.com/10manongit/p/13039010.html
Copyright © 2011-2022 走看看