zoukankan      html  css  js  c++  java
  • 手机专用的自适应方案 以及sass安装使用

    1. 什么是 REM
    2. REM 和 EM 的区别是什么

      图片图片
    3. 手机端方案的特点

      1. 所有手机显示的界面都是一样的,只是大小不同
      2. 1 rem == html font-size == viewport width
    4. 使用 JS 动态调整 REM
      http://js.jirengu.com/xoqadocuqu/2/edit?html,css,output
       <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
       <script>
           var pageWidth = window.innerWidth
           document.write('<style>html{font-size:'+pageWidth+'px;}</style>')
       </script>
      
    5. REM 可以与其他单位同时存在
       font-size: 16px;
       border: 1px solid red;
        0.5rem;
      
      1. 在 SCSS 里使用 PX2REM

        • npm config set registry https://registry.npm.taobao.org/
        • touch ~/.bashrc
        • echo 'export SASS_BINARY_SITE="https://npm.taobao.org/mirrors/node-sass"' >> ~/.bashrc
        • source ~/.bashrc
        • npm i -g node-sass
        • mkdir ~/Desktop/scss-demo
        • cd ~/Desktop/scss-demo
        • mkdir scss css
        • touch scss/style.scss
        • start scss/style.scss
        • node-sass -wr scss -o css

          编辑 scss 文件就会自动得到 css 文件

          在 scss 文件里添加

          @function px( $px ){
            @return $px/$designWidth*10 + rem;
          }
          
          $designWidth : 640; // 640 是设计稿的宽度,你要根据设计稿的宽度填写。如果设计师的设计稿宽度不统一,就杀死设计师,换个新的。
          
          .child{
             px(320);
            height: px(160);
            margin: px(40) px(40);
            border: 1px solid red;
            float: left;
            font-size: 1.2em;
          }
          即可实现 px 自动变 rem

     

         sass 安装 https://www.sass.hk/install/ 打开sass中文教程

    下面就可以使用了。

    1,在桌面新建一个文件夹。测试一下。打开编辑器新建前端三剑客。html,css,js。新建一个style.scss的文件。按照教程中的sass语法进行编译即可

    使用 Sass 进行开发,那么是不是直接通过“<link>”引用“.scss”或“.sass”文件呢?

    那么这里告诉大家,在项目中还是引用“.css”文件,Sass 只不过是做为一个预处理工具,提前帮你做事情,只有你需要时候,他才有攻效。

    这样一来,也就有了这章需要介绍的内容—— Sass 的编译。因为 Sass 开发之后,要让 Web 页面能调用 Sass 写好的东西,就得有这么一个过程,这个过程就称之为 Sass 编译过程。Sass 的编译有多种方法:命令行编译,GUI图形编译 Koala (http://koala-app.com/)  自动动化编译的同学,应该都知道 Grunt Gulp

    运行命令行编译;(我觉得是很简单的)

    //单文件转换命令
    sass input.scss output.css
    
    //单文件监听命令
    sass --watch input.scss:output.css
    
    //如果你有很多的sass文件的目录,你也可以告诉sass监听整个目录:
    sass --watch app/sass:public/stylesheets

    到这里,基本上就可以使用sass了。这里有一个很迷惑的地方。就是sass与scss的关系。我们是学习sass的怎么使用scss的。这就要往前说历史了。喜欢探究的可以GG一下。总之你知道scss所属于sass就可以了。

    使用技巧:

    1,css嵌套输出方式(就是css缩进的方式)

    1. 嵌套输出方式 nested
    2. 展开输出方式 expanded  
    3. 紧凑输出方式 compact 
    4. 压缩输出方式 compressed
    编译的时候可以定义 sass --watch test.scss:test.css --style nested

    2,在浏览器编辑直接更改、不需要在复制粘贴了,简直是神器。

     

    Sass 调试一直以来都是一件头痛的事情,使用 Sass 的同学都希望能在浏览器中直接调试 Sass 文件,能找到对应的行数。值得庆幸的是,现在实现并不是一件难事,只要你的浏览器支持“sourcemap”功能即可。早一点的版本,需要在编译的时候添加“--sourcemap”  参数:

    
    
    sass --watch --scss --sourcemap style.scss:style.css
    
    

    在 Sass3.3 版本之上(我测试使用的版本是 3.4.7),不需要添加这个参数也可以:

    
    
    sass --watch style.scss:style.css
    
    

    在命令终端,你将看到一个信息:

    
    

    >>> Change detected to: style.scss
      write style.css
      write style.css.map

    
    

    这时你就可以像前面展示的 gif 图一样,调试你的 Sass 代码

    (这种方法可能有的人做会有问题)

    下面有一种更简单的

    sass 使用教程

    1.声明变量用 “$”    $300px;  写法与css一样、声明变量后下面都使用变量。后期维护草鸡方便。

    变量分为普通变量和默认变量、  局部变量、全局变量、默认变量后面需要加  !default;全局变量定义在上面。局部变量定义在选择器内。调用方法都是一样的、

    那么上面时候声明变量呢???

    我的建议,创建变量只适用于感觉确有必要的情况下。不要为了某些骇客行为而声明新变量,这丝毫没有作用。只有满足所有下述标准时方可创建新变量:

    1. 该值至少重复出现了两次;
    2. 该值至少可能会被更新一次;
    3. 该值所有的表现都与变量有关(非巧合)。

    Sass]嵌套-选择器嵌套

    • 选择器嵌套  原理就是省略父级。
    • 属性嵌套    一种熟悉有多种值的。比如font,border等等。
    • 伪类嵌套     & 代表嵌套规则外层的父选择器
    • 如果你的整个网站中有几处小样式类似,比如颜色,字体等,在 Sass 可以使用变量来统一处理,那么这种选择还是不错的。但当你的样式变得越来越复杂,需要重复使用大段的样式时,使用变量就无法达到我们目了。这个时候 Sass 中的混合宏就会变得非常有意义。在这一节中,主要向大家介绍 Sass 的混合宏。声明时候调用的时候前面加上  @include  变量名。 声明混合宏的时候还可以传参数
    • @mixin border-radius($radius){ -webkit-border-radius: $radius; border-radius: $radius; }       使用的时候就可以 @include border-radius(10px); 声明的时候也可以给默认值:@mixin border-radius($radius(10px)){ -webkit-border-radius: $radius; border-radius: $radius; }        $radius;=10px(牛逼的是可以传多个参数)
    • 占位符

      Sass 中的占位符 %placeholder 功能是一个很强大,很实用的一个功能,这也是我非常喜欢的功能。他可以取代以前 CSS 中的基类造成的代码冗余的情形。因为 %placeholder 声明的代码,如果不被 @extend 调用的话,不会产生任何代码。来看一个演示:

      %mt5 {
        margin-top: 5px;
      }
      %pt5{
        padding-top: 5px;
      }
    • //SCSS
      %mt5 {
        margin-top: 5px;
      }
      %pt5{
        padding-top: 5px;
      }
      
      .btn {
        @extend %mt5;
        @extend %pt5;
      }
      
      .block {
        @extend %mt5;
      
        span {
          @extend %pt5;
        }
      }编译出来的代码相同的样式会自动合并(.btn, .block { margin-top: 5px; })

     今天又点看不下去了。暂停一下

    11
  • 相关阅读:
    Systemd程序及相关命令
    深入理解SELinux
    Linux系统常见内核问题修复(转发)
    CentOS6.8单用户模式下修改密码
    CentOS6启动流程
    linux中的软、硬链接
    Linux中计划任务、周期性任务设置
    CentOS7.3将网卡命名方式设置为传统方式
    js判断字符串是否有下划线
    判断是否是微信打开
  • 原文地址:https://www.cnblogs.com/milx/p/7270234.html
Copyright © 2011-2022 走看看