移动Web基础知识

一、视口

视口在默认情况下也没你可以放大或者缩小。因为体验不好,且容易产生布局错误,所有页面要禁止用户缩放

1、视口属性:viewport

content:视口内容

width=device-width 页面宽度默认等于设备宽度

initial-scale=1.0 初始化缩放比例为1.0

maximum-scale=1.0 最大缩放比例为1.0

minimum-scale=1.0 最小缩放比例为1.0

user-scalable=no/yes 是否禁止用户的缩放功能

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0,user-scalable=no">

拓展:禁止缩放以后最大和最小的缩放比写不写视情况而定

写代码的时候可以不写。但是标准写一个完整的meta的时候必须写

二、

background-size 宽(x)高(y)

两个都是数字的时候参考父盒子的宽高

只有一个数值的时候等比例缩放(一个值代表宽度)

两个都是百分比的时候参考父盒子的宽高

只有一个百分比数值的时候等比例缩放(一个百分比的时候代表宽度)

background-size:cover 覆盖,等比例放大填满整个盒子,不会存在空白

1、当盒子比图片大的时候,图片会填满盒子

2、当盒子比图片小的时候,图片不一定全部显示出来,左上角部分开始显示

background-size:contain 等比例放大直至一遍达到父盒子的边框,存在空白的部分

简写:background:url() no-repeat color position /size(/必须填写)

三、布局(混合布局:流式+less+rem+flex)

流式布局(百分比布局)自行了解圣杯布局

1、盒子的宽度不给具体的像素值,然后盒子用%来代替

弹性布局(flex布局)

1、标准流盒子一行显示 display:inline-block

问题:出现间隙(左侧是换行出现的,下侧是基线对齐出现的:用vertical-align:middle 解决)

2、浮动流盒子一行显示 float:left

问题:父盒子失去高度,要清除浮动

3、定位流盒子一行显示 position:absolute

问题:子盒子会层叠在一起

4、弹性布局盒子一行显示 display:flex(父盒子设置)

默认情况下,盒子沿着主方向排布(主轴默认方向从左向右 )

优点:1.没间隙 2.不会失去高度 3.不会层叠

父盒子常见属性:

主轴方向:

flex-direction:row从左向右,类似左浮动

flex-direction:row-reverse从右向左,类似右浮动

flex-direction:colum垂直从上向下

flex-direction:colum-reverse垂直从下向上

主轴对齐方式:

justify-content:flex-start 从左开始向右结束类似左对齐

justify-content:flex-end 从右开始向左结束类似右对齐

justify-content:center 居中对齐,类似text-align:center

justify-content:space-betwent 各个元素之间距离相同,父元素剩余空间均分

justify-content:space-around 子元素周围的距离相同

侧轴对齐方式:

align-items:stretch 默认将子元素的高度拉伸填满盒子(前提子元素无高度)

align-items:flex-start 再开始位置,靠上

align-items:flex-end再结束位置,靠下

align-items:center 居中

flex-wrap:wrap 多行换行

垂直水平居中:

align-items:center

justify-content:center

多行对齐:

align-content:stretch 拉伸,高度拉伸填满父盒子

align-content:flex-start 多行靠上

align-content:flex-end 多行靠下

align-content:center 多行居中

align-content:space-betwent 将父元素的空间均分

align-content:space-around 行的上下距离相同

flex-flow 符合属性 (了解)

flex 比例划分:

父元素: display:flex

子元素:flex:1(每个子盒子都能获得的一部分)

子元素其他属性:

align-self 单独控制某一个盒子的侧轴对齐方式,这个属性优先级高于align-items

order:数值;修改弹性子元素的排序,数值越小位置越靠前(默认是从0 开始的)

background:radial-gradient(方向,色值,色值),方向不写的情况下显示从上向下

四、less

less优点1、兼容所有的css语法

2、less文件保存会生成对应的css文件

3、html导入的时候只能选择css文件,less文件不识别

声明变量:@变量名:变量值

变量运算:变量 运算符 数值

混合用法:多个重复属性封装成一方法

.方法名 (){ 公用属性;}

&表示外层元素

五、rem(rem布局 rem+less+媒体查询)

html和body的默认字体大小是16px

rem(root em )

em是相对于父元素的字体大小来设置的

rem是相对于html元素的字体大小(和父元素无关)

优点:可以通过修改html中的字体大小来改变页面中的大小,可以整体控制

 

六、媒体查询(Media Query)

@media media type(媒体类型:all 所有设备|screen 平板手机|print 打印机打印预览) and(and 并且 | not 非 |only 来指定某个某个特定的)media feature(媒体特性:width | max-width | min-width){满足条件的css样式}

@media screen and (){} ---------小括号里面不带有分号,各个部分用空格分开

例子:@media screen and (max-width:200px){}

rem / 75 *测量数据 = 测量数据 / 75 * rem

七、响应式布局

页面会根据屏幕的宽度显示不同的不同的布局效果

利用媒体查询设置设置响应式布局

@media screen and (min-width:992px) and (max-width:1199px) { }

@media screen and (min-width:768px) and (max-width:991px)  { }

@media screen and (max-width:767px)   { }

八、Bootstrap框架

跟布局有关的常用框架有:Bootstrap,Amaze UI,Framework7

起步:下载使用的为源码

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
    <title>Bootstrap 101 Template</title>
​
    <!-- 将以下的导入路径修改成本地路径 -->
    <!-- 1.引入本地bootstrap.css -->
    <link href="./lib/css/bootstrap.css" rel="stylesheet">
</head>
<body>
    <h1>你好,世界!</h1>
    <!-- 以下两个js文件也要改成本地路径 -->
    <!-- 2.引入本地jq文件 -->
    <script src="./lib/js/jquery-1.12.4.min.js"></script>
    <!-- 3.引入本地的bootstrap.js文件 -->
    <script src="./lib/js/bootstrap.js"></script>
</body>
</html>

全局css样式:

form表单:

修改以后使用的:

 <div class="main">
​
        <form>
​
            <div class="form-group">
​
                <label for="exampleInputEmail1">邮箱</label>
​
                <input type="email" class="form-control" id="exampleInputEmail1" placeholder="Email">
​
            </div>
​
            <div class="form-group">
​
                <label for="exampleInputPassword1">密码</label>
​
                <input type="password" class="form-control" id="exampleInputPassword1" placeholder="Password">
​
            </div>
​
            <div class="form-group">
​
                <label for="exampleInputFile">上传文件</label>
​
                <input type="file" id="exampleInputFile">
​
                <p class="help-block">提示:上传身份证反正面!</p>
​
            </div>
​
            <div class="checkbox">
​
                <label>
​
                    <input type="checkbox"> 登录
​
                </label>
​
            </div>
​
            <button type="submit" class="btn btn-default">提交</button>
​
        </form>
​

 

按钮:修改使用的

<a class="btn btn-default btn-primary" href="#" role="button">链接</a>
​
<button class="btn btn-default btn-danger" type="submit">按钮</button>
​
<input class="btn btn-default btn-warning" type="button" value="输入框">
​
<input class="btn btn-default btn-success" type="submit" value="提交">

 

调用类名:

btn-default 默认样式
btn-primary 首选项(背景色深蓝色)
btn-success 成功(背景色绿色)
btn-info 一般信息(背景色淡蓝色)
btn-warning 警告(背景色橘黄)
btn btn-danger 危险(背景色红色)
btn-link 链接
btn-lg 大按钮
btn-sm 小按钮
btn-xs 超小按钮

 

栅格系统:

栅格布局是将页面内容显示区域平均分为12列

container:响应式版心根据屏幕的宽度调整版心的宽度

container-fulid百分比宽度

col-lg-* lg大屏幕(大于等于1200px)col代表列 *代表占据几列

col-md-*md中屏幕(大于等于992px)

col-sm-*sm小屏幕(大于等于768px)

col-xs-*xs移动端屏幕(小于768px)

响应式工具:

 超小屏幕手机 (<768px)小屏幕平板 (≥768px)中等屏幕桌面 (≥992px)大屏幕桌面 (≥1200px)
.visible-xs-*可见隐藏隐藏隐藏
.visible-sm-*隐藏可见隐藏隐藏
.visible-md-*隐藏隐藏可见隐藏
.visible--*隐藏隐藏隐藏可见
.hdden-xs隐藏可见可见可见
.hdden-sm可见隐藏可见可见
.hdden-md可见可见隐藏可见
.hdden-lg可见可见可见隐藏

导航条

源码

<nav class="navbar navbar-default">
  <div class="container-fluid">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">Brand</a>
    </div>
​
    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
      <ul class="nav navbar-nav">
        <li class="active"><a href="#">Link <span class="sr-only">(current)</span></a></li>
        <li><a href="#">Link</a></li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li><a href="#">Action</a></li>
            <li><a href="#">Another action</a></li>
            <li><a href="#">Something else here</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">Separated link</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">One more separated link</a></li>
          </ul>
        </li>
      </ul>
      <form class="navbar-form navbar-left" role="search">
        <div class="form-group">
          <input type="text" class="form-control" placeholder="Search">
        </div>
        <button type="submit" class="btn btn-default">Submit</button>
      </form>
      <ul class="nav navbar-nav navbar-right">
        <li><a href="#">Link</a></li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li><a href="#">Action</a></li>
            <li><a href="#">Another action</a></li>
            <li><a href="#">Something else here</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">Separated link</a></li>
          </ul>
        </li>
      </ul>
    </div><!-- /.navbar-collapse -->
  </div><!-- /.container-fluid -->
</nav>

修改后是用的:

 <nav class="navbar navbar-default">
        <!-- container-fluid页面100%宽度 -->
        <!-- containe响应式版心 -->
        <div class="container">
            <!-- Brand and toggle get grouped for better mobile display -->
            <div class="navbar-header">
                <button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
                    data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-brand" href="#">Bootstrap中文网</a>
            </div>
​
            <!-- Collect the nav links, forms, and other content for toggling -->
            <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
                <ul class="nav navbar-nav">
                    <li><a href="#">Bootstrap2中文文档</a></li>
                    <li><a href="#">Bootstrap3中文文档</a></li>
                    <li><a href="#">Bootstrap4中文文档</a></li>
                    <li><a href="#">Less教程</a></li>
                    <li><a href="#"> Query API</a></li>
                    <li><a href="#">网站实例</a></li>
                </ul>
                </ul>
                <ul class="nav navbar-nav navbar-right">
                    <li><a href="#">关于</a></li>
                </ul>
            </div><!-- /.navbar-collapse -->
        </div><!-- /.container-fluid -->
    </nav>

模态框:

源码

<!-- Button trigger modal -->
<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
  Launch demo modal
</button>
​
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title" id="myModalLabel">Modal title</h4>
      </div>
      <div class="modal-body">
        ...
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Save changes</button>
      </div>
    </div>
  </div>
</div>

修改使用:

修改后是用的:

 <button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
        点击
    </button>
​
    <!-- Modal -->
    <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
                            aria-hidden="true">&times;</span></button>
                    <h4 class="modal-title" id="myModalLabel">Modal title</h4>
                </div>
                <div class="modal-body">
                    <form>
                        <div class="form-group">
                            <label for="exampleInputEmail1">邮箱</label>
                            <input type="email" class="form-control" id="exampleInputEmail1" placeholder="Email">
                        </div>
                        <div class="form-group">
                            <label for="exampleInputPassword1">密码</label>
                            <input type="password" class="form-control" id="exampleInputPassword1"
                                placeholder="Password">
                        </div>
                        <div class="form-group">
                            <label for="exampleInputFile">上传文件</label>
                            <input type="file" id="exampleInputFile">
                            <p class="help-block">提示:上传身份证反正面!</p>
                        </div>
                        <div class="checkbox">
                            <label>
                                <input type="checkbox"> 登录
                            </label>
                        </div>
                        <button type="submit" class="btn btn-default">提交</button>
                    </form>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                    <button type="button" class="btn btn-primary">Save changes</button>
                </div>
            </div>
        </div>
    </div>

转换大小写:

<!-- 转换成小写 -->

​ <p class="text-lowercase">JIFANGYAN</p>

​ <!-- 转换成大写 -->

​ <p class="text-uppercase">jifangyan</p>

​ <!-- 单词首字母大写 -->

​ <p class="text-capitalize">ji fang yan</p>

H5C3动画

过渡属性:transition

变换属性:transform

平移效果:translate

缩放效果:scale

旋转效果:rotate

修改旋转点坐标:transform-origin

视距(一般600-1000):perspective

声明动画关键字:@keyframes

调用动画属性:animation

无线循环播放:infinite

反向播放:alternate

动画结束位置:animation-fill-mode:forwards

鼠标悬停的时候动画停止: animation-play-state: paused

 

复习单位:

px写多少就是多少

写百分比的时候参考的是父元素的宽高(设置margin值为百分比的时候参考的是父盒子的宽度)

em参考当前盒子的字体大小

rem参考的是html的字体大小

拓展:view:视口

vw、wh将浏览器的宽高分成100分

width:10vw浏览器宽度的10/100

height:10vh浏览器高度的10/100

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值