我的移动web学习第七天

504 阅读2分钟

less+响应式布局

less

专业术语:css预处理器

常见的三种css预处理器:scss、less、stylus。

浏览器不能直接识别它 依靠编译工具将它编译成css文件

less使用过程

1648028256285.png

less调错

当引用的变量出错时,左下角会有一个 警告 ,点进去就会有提示哪一行出错。

1648028741606.png

1648029027807.png

less变量

固定语法: @+任意的名称(有语义的英文)

作用:把一些css的属性值设置在一个地方,实现一改全改。

代码:

1648029577202.png

less运算

在less文件可以直接 加 减 乘 除,但是 ==除法== 需要加 ==括号==,编译的css文件直接可以直接得到样式结算后的值。

代码:

1648029961667.png

less混合(mixin)

将公共的css代码封装一起使用

  1. 定义一个mixin
.mix() {
 
}
  1. 谁需要用到mixin,就调用
.one {
   
    .mix();
    
}

完整代码:

//  1. 定义一个mixin
.mix() {
    width: 200px;
    background-repeat: no-repeat;
    background-size: 200px;
}
.one {
    // 2.调用mixin
    .mix();
    background-image: url(../images/1.jpeg);
}

.two {
    .mix();
    background-image: url(../images/2.jpeg);
}

.three {
    .mix();
    background-image: url(../images/3.jpeg);
}

less混合动态传入数据

使用场景:多个类名使用精灵图

  1. 将mixin里添加形式参数(下面的参数:@a, @b)
.mix(@a, @b) {
    width: 200px;
    height: 300px;
    background-color: gray;
    background-repeat: no-repeat;
    background-size: 200px;
    background-position: @a @b;   
    background-image: url(../images/1.jpeg);
}
  1. 调用的参数为实际参数
.one {
    .mix(0px, 30px);
}

完整代码:

.mix(@a, @b) {
    width: 200px;
    height: 300px;background-color: gray;
    background-repeat: no-repeat;
    background-size: 200px;
    background-position: @a @b;   
    background-image: url(../images/1.jpeg);
}

.one {
    .mix(0px, 30px);
  
}

.two {
    .mix(10px, 0px);
 
}

.three {
    .mix(20px, 10px);
  
}

less嵌套

后代:

/* 后代 */
div {
    p {
        span {
            color: red;
        }
    }
}

兄弟:

/* 兄弟 */
div{
    p{ color: aqua;}
    span{color: pink;}
}

子代:

/* 子代选择器 */
div{
    >p{
        span{
            color: pink;
        }
    }
}

伪元素:

div{
    p{
        &::before
            {
            content: "";
            color:blue ;
            }
    }
    
}

补充:

设置浏览器文字不换行

white-space:nowrap

响应式布局

只写一套代码,可以在pc端运行(体验不错),还可以在移动端上运行(体验不错)。

实现原理:媒体查询

媒体查询:

根据屏幕宽度或者高度不同 去使用对应的css代码。

语法(简洁):

当屏幕宽度为400时,网页背景颜色变成红色

  @media(width:400px) {
            body {
                background-color: red;
            }
        }

常见推荐写法:

@media screen and (width:400px) {
            body {
                background-color: red;
            }
        

指定区间:

  @media screen and (min-width: 400px) and (max-width:800px) {
            div {
                width: 50%;
                float: left;
            }
        }
        

Bootstrap

响应式布局的UI框架

实现响应式布局的核心技术:媒体查询+浮动

栅格系统:(boostrap的核心)

1648040237858.png

boostrap将屏幕按照宽度分成四种:

大屏幕中等屏幕小屏幕极小屏幕
lg(large)md(middle)sm(small)xs (extra small)
>1200px992px-1200px768px-992px<768px

固定用法:

  1. 先外层写一个 类 名字是固定的 container

  2. 里面写一个 类 row固定

  3. 根据需求(在什么样的屏幕下 一行 显示几个元素)

    boostrap默认将一行 划分成了12分 12列 1列占一份

 <div class="container">
        <div class="row">
            <div class="col-lg-1 col-md-2 col-sm-3 col-xs-12">1</div>
            <div class="col-lg-1 col-md-2 col-sm-3 col-xs-12">2</div>
            <div class="col-lg-1 col-md-2 col-sm-3 col-xs-12">3</div>
            <div class="col-lg-1 col-md-2 col-sm-3 col-xs-12">4</div>
            <div class="col-lg-1 col-md-2 col-sm-3 col-xs-12">5</div>
            <div class="col-lg-1 col-md-2 col-sm-3 col-xs-12">6</div>
            <div class="col-lg-1 col-md-2 col-sm-3 col-xs-12">7</div>
            <div class="col-lg-1 col-md-2 col-sm-3 col-xs-12">8</div>
            <div class="col-lg-1 col-md-2 col-sm-3 col-xs-12">9</div>
            <div class="col-lg-1 col-md-2 col-sm-3 col-xs-12">10</div>
            <div class="col-lg-1 col-md-2 col-sm-3 col-xs-12">11</div>
            <div class="col-lg-1 col-md-2 col-sm-3 col-xs-12">12</div>
        </div>
    </div>