sass实现七色卡

一 环境说明

电脑系统:windows 7

配置:安装sass 具体可以参见我的上一篇博客

http://blog.csdn.net/u014182411/article/details/77319639

编辑器:webstorm 2016.3 (webstorm可以自动编译sass文件为css文件,具体可以参见:http://www.jianshu.com/p/0fe52f149cab)


二、sass教程

       sass其实是一种css预处理语言,sass相当于在css的基础上加入了编程思想,在sass中可以使用函数,数组,可以使得css的编程面对对象。编写sass之后,利用预处理器可以将sass编译为对应的css文件 ,最后我们在html中引入的还是css文件。sass其实就是辅助我们更轻松的写出css。利用sass可以使得本来需要书写上百行的css,利用几行sass代码就可以编译出。

      我学习sass是看的慕课网上的教程:

      基础篇:http://www.imooc.com/learn/311

      进阶篇:http://www.imooc.com/learn/436

      讲诉的很详细。如果有css的基础和会基本的编程思想,集中学习时间在2到3个小时左右。

      其他资源:

      sass中文官网教程:http://www.sasschina.com/guide/

      阮一峰博客:http://www.ruanyifeng.com/blog/2012/06/sass.html


三、sass实现七色卡

      仿照慕课网进阶学习中的第4章,写了一个七色卡。

      效果图如下(实现了响应式布局):


具体代码如下:

index.scss:(这里采用的sass的书写方式决定了后缀名称是.scss,具体的解释教程上有说明)

$unit-height: 3rem;
$unit-width: 2.5rem;

$colors:(
        red:#dc143c,
        orange: saturate(lighten(adjust_hue(red, 39), 5), 7),//#f37a16
        yellow: saturate(lighten(adjust_hue(red, 64), 6), 13),//#fbdc14
        green: desaturate(darken(adjust_hue(red, 102), 2), 11),//#73c620
        blue: saturate(darken(adjust_hue(red, 201), 2), 1),//#12b7d4
        purple: saturate(darken(adjust_hue(red, 296), 2), 1),//#a012d4
        black:#777,
        bgc: #fff
);

html, body {
  height: 100%;
  width: 100%;
  font-size: 1.5vw;
}

body, ul, li {
  margin: 0;
  padding: 0
}

main {
  /*  width: 21*$unit-width;*/
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 100%;
  /*transform: translateY(-3*$unit-height);*/
}

.seven-card {
  width: 21*$unit-width;
}

ul {
  list-style: none;
}

.line {
  display: flex;
  flex-direction: row;
}

li {
  height: $unit-height;
  width: $unit-width;
  display: inline-flex;
}

//declare macro of darken color
@mixin darkenColor($color) {
  @for $i from 1 through 10 {
    $x: $i+11;
    li:nth-child(#{$x}) {
      $n: $i*5;
      $bgcolor: darken($color, $n);
      background-color: $bgcolor;
      &:hover:before { //present the number of color when it's in hover
        content: "#{$bgcolor}";
        color: lighten($bgcolor, 40);
        font-family: Verdana;
        font-size: 8px;
        padding: 2px;
      }
    }
  }
}

//declare macro of lighten color
@mixin lightenColor($color) {
  @for $i from 1 through 10 {
    li:nth-child(#{$i}) {
      $x: 11-$i;
      $n: $x*5;
      $bgcolor: lighten($color, $n);
      background-color: $bgcolor;
      &:hover:before {
        content: "#{$bgcolor}";
        color: darken($bgcolor, 40);
        font-family: Verdana;
        font-size: .5rem;
        padding: .1rem;

      }
    }
  }
}

@each $colorName, $color in $colors {
  .#{$colorName} {
    li:nth-child(11) {
      background-color: $color;
    }
    @include lightenColor($color);
    @include darkenColor($color);
  }
}

代码说明:

      布局采用的flexbox布局。

     七色卡 每个基准颜色有21个变色。每一排以第11个格子为基准颜色,11个格子之后的格子在基准色的基础上变得色度越来越暗。利用darken函数。第11个格子之前的格子,在第11个格子的基础上是变亮的,但是色度亮的程度是从左到右越来越弱。


四、完整代码github地址

      完整代码在我的github上可以下载。地址如下:

      https://github.com/yuanzoudetuzi/seven-color-card/tree/master/seven-color-card


首先,我们需要先创建一个 HTML 文件,并引入相关的 CSS 和 JavaScript 库。在这个示例中,我们使用了 Bootstrap 和 jQuery。代码如下: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Login Form</title> <!-- 引入 Bootstrap 样式 --> <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/4.1.3/css/bootstrap.min.css"> <!-- 引入自定义样式表 --> <link rel="stylesheet" href="style.css"> </head> <body> <div class="container"> <div class="row"> <div class="col-md-4 offset-md-4"> <h2 class="text-center mb-4">Login Form</h2> <form id="login-form"> <div class="form-group"> <label for="username">Username</label> <input type="text" class="form-control" id="username" name="username" required> </div> <div class="form-group"> <label for="password">Password</label> <input type="password" class="form-control" id="password" name="password" required> </div> <button type="submit" class="btn btn-primary btn-block">Login</button> </form> </div> </div> </div> <!-- 引入 jQuery 库 --> <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script> <!-- 引入 Bootstrap JS 库 --> <script src="https://cdn.bootcss.com/bootstrap/4.1.3/js/bootstrap.min.js"></script> <!-- 引入自定义 JavaScript 文件 --> <script src="app.js"></script> </body> </html> ``` 接下来,我们需要编写一个 Sass 文件,用于定制登录表单的样式。代码如下: ```scss // 引入 Bootstrap Sass 文件 @import "bootstrap/scss/bootstrap"; // 定义自定义样式 // 登录表单容器 .container { margin-top: 50px; } // 登录表单 #login-form { background-color: #f7f7f7; padding: 20px; border-radius: 5px; .form-group { margin-bottom: 20px; } label { font-weight: bold; } input[type="text"], input[type="password"] { border-radius: 3px; border: 1px solid #ccc; padding: 10px; width: 100%; } button[type="submit"] { margin-top: 20px; } } ``` 最后,我们需要编写一个 JavaScript 文件,用于处理登录表单的提交事件。代码如下: ```js $(function() { // 监听登录表单的提交事件 $('#login-form').submit(function(event) { event.preventDefault(); // 获取用户名和密码 var username = $('#username').val(); var password = $('#password').val(); // TODO: 在这里处理登录逻辑 console.log('Username:', username); console.log('Password:', password); }); }); ``` 完成上述步骤后,我们就可以在浏览器中打开 HTML 文件,查看效果了。当用户在登录表单中输入用户名和密码并点击登录按钮时,JavaScript 代码会将用户名和密码打印到控制台上。我们可以在这里添加自己的登录逻辑,例如发送 AJAX 请求进行验证等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值