day4

1-如何设置一个元素垂直居中?

1.把元素变成定位元素

设置元素的定位位置,距离上、左都为50%

设置元素的左外边距、上外边距为宽高的负1/2

2.把元素变成定位元素

        设置元素的定位位置,距离上、左都为50%

设置元素的相对于自身的偏移度为负50%(也就是元素自身尺寸的一半)

3.把元素变成定位元素

设置元素的定位位置,距离上、下、左、右都为0

设置元素的margin样式值为 auto

2-图片懒加载的实现?

        1.懒加载

将图片src先赋值为一张默认图片,当用户滚动滚动条到可视区域图片的时候,再去加载后续真正的图片

2.实现原理

先将img标签中的src链接设置为空,将真正的图片链接放在自定义属性(data-src),当js监听到图片元素进入到可视窗口的时候,将自定义属性中的地址存储到src中,达到懒加载的效果

3.实现

   <script>
            // 一开始没有滚动的时候,出现在视窗中的图片也会加载
            start();
            // 当页面开始滚动的时候,遍历图片,如果图片出现在视窗中,就加载图片
            var clock; //函数节流
            $(window).on('scroll',function(){
                if(clock){
                    clearTimeout(clock);
                }
                clock = setTimeout(function(){
                    start()
                },200)
            })   
            function start(){
                 $('.container img').not('[data-isLoading]').each(function () {
                    if (isShow($(this))) {
                        loadImg($(this));
                    }
                })
            }
            // 判断图片是否出现在视窗的函数
            function isShow($node){
                return $node.offset().top <= $(window).height()+$(window).scrollTop();
            }

            // 加载图片的函数,就是把自定义属性data-src 存储的真正的图片地址,赋值给src
            function loadImg($img){
                    $img.attr('src', $img.attr('data-src'));

                    // 已经加载的图片,我给它设置一个属性,值为1,作为标识
                    // 弄这个的初衷是因为,每次滚动的时候,所有的图片都会遍历一遍,这样有点浪费,所以做个标识,滚动的时候只遍历哪些还没有加载的图片
                    $img.attr('data-isLoading',1);
            }

        </script>

3-简述媒体查询的作用

media媒体查询可使用在不同的设备及媒体上运行不同的css代码,
media媒体查询是一个条件,当符合条件时,则运行相应的css代码

浏览器支持

        IE5.5/6/7不支持在@import中使用媒体类型

        Safari/firefox只支持all,screen,print三种类型(包括iphone)

        Opera 完全支持

        Opera mini  支持handheld,未指定则使用screen

        Windows Mobile系统中的IE支持handheld,其它支持不明

4-css3 新增了哪些特性

border-radius:为元素添加圆角边框,border-radius 属性是一个简写属性,用于设置四个 border-*-radius 属性;

box-shadow:向框添加一个或多个阴影。
语法:box-shadow: 水平位移 垂直位移 [模糊半径 阴影尺寸 阴影颜色 inset(内部阴影)];

border-image:设置边框图像,该属性是一个简写属性,用于设置以下属性:

background-size:背景图片的尺寸。

5-display:none 和 visibility:hidden 的区别

1、作bai用不同

visibility: hidden----将元素隐藏du,但是在网页中该占的位置还zhi是占dao着。

display: none----将元素的显示设为无,即在网页中不占任何的位置。

2、使用后HTML元素有所不同

visibility:hidden,使用该属性后,HTML元素(对象)仅仅是在视觉上看不见(完全透明),而它所占据的空间位置仍然存在,也即是说它仍具有高度、宽度等属性值。

display:none,使用该属性后,HTML元素(对象)的宽度、高度等各种属性值都将“丢失”。

3、定义不同
visibility 属性指定一个元素是否是可见的。

display这个属性用于定义建立布局时元素生成的显示框类型。

6-less 的作用?Scss(sass),stylus 的作用?

sass:是一种动态样式语言,比css多出了很多功能(如变量,计算,混入,颜色处理,函数,继承, 嵌套等),更易阅读,扩展名.sass

   需要严格的遵循缩进的语法规则,不带{}和分号;

    h1

      color:red;

scss:是sass语法进行改良后的语法,兼容原来的语法,只是将原来的缩进排版方式改成了我们熟悉的{},扩展名 .scss

    h1{

      color:red

    }

less:Less也是一种动态语言,受sass影响很大,对css赋予了动态语言的特性,如变量,计算,继承,函数等。Less既可以在客户端运行(支持IE6+),也可以在服务端运行(借助nodejs)

  h1{

    color:red

  }

stylus:主要是给node项目进行css预处理支持,人气不如前两个。扩展名是.styl

    同时支持缩进和css常规书写方式,如下两种方式都是可以的

    h1

      color:red

    h1{

      color:red

    }

变量:sass(scss),less,stylus等让人们收益的一个重要特性就是变量的引入,我们可以把经常使用的css属性值,定义成一个变量,然后通过变量名来引用他们。

  sass(scss) 变量必须以$开头,变量和值之间用:隔开,如:

     $color:#fff;

    h1{

      border:1px solid $color

    }

  less变量必须以@开头,已经被赋值的变量及其他常亮(如像素,颜色等)都可以参与运算。

    @color:#fff;

    h1{

      border:1px solid @color

    }

  stylus:可以以$开头或其他任何字符,但是不能以@开头。

    $color = #ddd;

    borderwidth = 1px;

    h1{

      border:borderwidth solid $color

    }

posted @ 2021-02-02 16:08  雨辰~  阅读(27)  评论(0)    收藏  举报