百度网盘
提取码:f1vz
<meta name="viewport" content="width=device-width, initial-scale=1.0,
maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
/* 传统盒子模型 = width + border + padding */
div:nth-child(1) {
width: 200px;
height: 200px;
background-color: pink;
padding: 10px;
border: 10px solid #ccc;
}
div:nth-child(2) {
/*
box-sizing: border-box;
有了这句话,就让盒子变成CSS3盒子模型
padding和border不会再撑大盒子
*/
margin-top: 10px;
box-sizing: border-box;
width: 200px;
height: 200px;
background-color: pink;
padding: 10px;
border: 10px solid #ccc;
}
</style>
</head>
<body>
<div></div>
<div></div>
</body>
</html>
移动端技术选型分为很多种,具体使用哪一种可以根据自己进了哪一家公司,公司是如何选择的即可
流式布局主要看的是宽度
可以设置最大宽度,但是里面的孩子可以自动收缩
<meta name="viewport" content="width=device-width, initial-scale=1.0,
user-scalable=no, maximum-scale=1.0, minium-scale=1.0">
最好给一个最大的宽度和一个最小的宽度 - 通过最大宽度和最小宽度来控制对页面的缩放操作
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
div{
display: flex;
width: 80%;
height: 300px;
background-color: pink;
justify-content: space-around;
}
div span{
width: 150px;
height: 100px;
background-color: purple;
margin-right: 5px;
}
</style>
</head>
<body>
<div>
<span>1</span>
<span>2</span>
<span>3</span>
</div>
</body>
</html>
通过给父盒子添加flex属性,来控制子盒子的位置和排列方式
flex布局中,默认子元素是不换行的,如果装不开,会缩小子元素的宽度,放到父元素里面
想让盒子垂直居中,需要在两个轴上面都居中才行
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>flex份数</title>
<style>
section{
display: flex;
width: 60%;
height: 150px;
background-color: pink;
margin: 0 auto;
}
section div:nth-child(1){
width: 100px;
height: 150px;
background-color: red;
}
section div:nth-child(2){
flex: 1;
}
section div:nth-child(3){
width: 100px;
height: 150px;
background-color: purple;
}
</style>
</head>
<body>
<section>
<div></div>
<div></div>
<div></div>
</section>
</body>
</html>
flex后面的数字其实表示的是权重,数值越大表明分配的东西越多
rem的优点就是可以通过修改html里面的文字大小来改变页面中元素的大小 可以实现整体控制
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
/*
1、媒体查询一般按照从大到小或者从小到大的顺序来
*/
/* 2、小于540px页面的背景颜色变为蓝色 */
@media screen and(max-width:520px) {
body {
background-color: blue;
}
}
/* 3、540~970 我们的页面改为绿色 */
/* @media screen and (min-width:540px) and (max-width:969px) {
body {
background-color: green;
}
} */
@media screen and (min-width:540px) {
body {
background-color: green;
}
}
/* 4、大于等于970px 我们页面的颜色改为红色*/
@media screen and (min-width:970px) {
body {
background-color: red;
}
}
/* screen还有and必须带上,不能省略的 */
/* 我们的数字后面必须要跟上单位 */
</style>
</head>
<body>
</body>
</html>
媒体查询 + rem实现元素动态大小变化
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
/* 这么写写死了,我们要实现在不同的屏幕里,实现不同的变换 */
/* html {
font-size: 100px;
} */
/* 清楚外边距 */
* {
margin: 0px;
padding: 0px;
}
/* 从小到大的顺序来书写 */
@media screen and (min-width:320px) {
html {
font-size: 50px;
}
}
/* 最小宽度定为640px */
@media screen and (min-width:640px) {
html {
font-size: 100px;
}
}
.top {
height: 1rem;
font-size: .5rem;
background-color: green;
color: #fff;
text-align: center;
line-height: 1rem;
}
</style>
</head>
<body>
<div class="top">购物车</div>
</body>
</html>
// 定义一个粉色的变量
@color:pink;
body {
background-color: @color;
}
// 定义一个字体为14px的变量
@font14:14px;
div{
color: @color;
font-size:@font14;
}
在vis中安装Easy LESS插件即可,每次保存好就可以将less文件转换成css文件
伪元素的写法 &
伪元素写法解析的结果为:
less文件
解析成css文件
全部用rem作为单位,当html字体大小变化的时候,元素尺寸也会发生变化,从而达到等比例缩放的适配
方案一
一般的情况下,我们用的都是当前最流行的
动态设置html标签font-size大小
目前比较流行的设计稿是750px
onmousewheel - 该属性只看正负不看大小
offsetWidth = content + padding + border
clientWidth = content + padding
满二叉树是一种特殊的完全二叉树
满二叉树,节点总数和树的高度呈现指数关系
强制类型转换括号是放在前面的
如果图包含环的,遍历框架就要visited数组来进行辅助即可
// 首页的样式文件
// @import 导入的意思,可以把一个样式导入到另一个样式文件中
@import "common";
position: fixed;
// 定位的盒子通过left值等来进行定位操作,
top: 0;
left: 50%;
transform: translateX(-50%);
在书写样式的时候,就是如此,在进行计算的时候,一定要加上括号,而且修改样式以后 先保存,一定要看到css文件中计算出具体数值才行
有了flexible.js就不用书写媒体查询了
原理就是将当前屏幕除以 10等份即可
技术选型上,我们使用的是 flexible.js + rem 来进行布局
<meta name="viewport" content="width=device-width, user-scalable=no,
initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
引入自己的样式即可
引入文件使用script
body {
min-width: 320px;
/* 一定要限定死 */
max-width: 750px;
/* flexible 给我们划分了 10 等份 */
/* */
width: 10rem;
margin: 0 auto;
line-height: 1.5;
font-family: Arial, Helvetica;
background: #f2f2f2;
}
划分了10等分,设计稿稿件给的是750px / 75 就是划分为10等份
但是使用这个插件要根据项目来修改我们默认的html文字大小
这是一个神器的插件
有了这个插件对于前面的less的学习了解也是必要的
id选择器最好不用使用,因为权重过高了
现在切图一般都不需要我们前端工程师制作
swiper是用来处理轮播图的一系列操作,要是如此,则有就是 -
swiper首页 - 通过进入swiper首页来进行- 不同轮播图页面的选取!
第一次使用git的时候,一定要尝试自己配置一下
前端人员还是建议使用码云来进行提交文件!
宽度设置稍微小一点可以左右空白,内容居中显示
通过媒体查询来对不同的屏幕尺寸来进行响应
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
ul {
list-style: none;
}
.container {
width: 750px;
margin: 0 auto;
}
.container ul li {
float: left;
width: 93.75px;
height: 30px;
background-color: green;
}
@media screen and (max-width:767px) {
.container {
width: 100%;
}
/* 不管自己的父亲占多少,我里面的子盒子还是占 1/3即可 */
.container ul li {
width: 33.33%;
}
}
</style>
</head>
<body>
<div class="container">
<ul>
<li>导航栏</li>
<li>导航栏</li>
<li>导航栏</li>
<li>导航栏</li>
<li>导航栏</li>
<li>导航栏</li>
<li>导航栏</li>
<li>导航栏</li>
</ul>
</div>
</body>
</html>
之前学的rem是将整个屏幕划分为多少等份额,但是栅格系统是将内容部分,划分为多少等份
页面里面的内容会随着页面宽度的不同实现缩放效果
其实Bootstrap里面的样式初始化就是之前我们所引入的内容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!--[if lt IE 9]>
<script src="https://fastly.jsdelivr.net/npm/[email protected]/dist/html5shiv.min.js"></script>
<script src="https://fastly.jsdelivr.net/npm/[email protected]/dest/respond.min.js"></script>
<![endif]-->
<title>Document</title>
<!-- 一定不要忘记引入bootstrap的样式文件 -->
<link rel="stylesheet" href="./bootstrap/css/bootstrap.min.css">
<style>
/* .login {
width: 40px;
height: 40px;
line-height: 40px;
} */
/* 属性选择器 */
[class ^="col"] {
border: 1px solid #ccc;
}
</style>
</head>
<body>
<!-- Indicates a successful or positive action -->
<!-- <button type="button" class="btn btn-success">Success</button> -->
<!-- 其实 -->
<!-- <div class="btn btn-success login">登录</div> -->
<!-- <div class="container">123</div> -->
<div class="container">
<div class="row">
<div class="col-lg-3">1</div>
<div class="col-lg-3">2</div>
<div class="col-lg-3">3</div>
<div class="col-lg-3">4</div>
</div>
<!--
如果孩子的份数相加等于 12 则孩子能够占满整个container的宽度
-->
<div class="row">
<div class="col-lg-6">1</div>
<div class="col-lg-2">2</div>
<div class="col-lg-2">3</div>
<div class="col-lg-2">4</div>
</div>
<!--
如果孩子的份数相加小于 12 则会 ?
- 则占不满整个container的宽度,会有空白
-->
<div class="row">
<div class="col-lg-6">1</div>
<div class="col-lg-2">2</div>
<div class="col-lg-2">3</div>
<div class="col-lg-1">4</div>
</div>
<!--
如果孩子的份数相加大于 12 则会 ?
- 多余的那一列会另起一行显示
-->
<div class="row">
<div class="col-lg-6">1</div>
<div class="col-lg-2">2</div>
<div class="col-lg-2">3</div>
<div class="col-lg-3">4</div>
</div>
</div>
</body>
</html>
让我们在不同的屏幕下划分出不同的份数即可
<div class="row">
<div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">1</div>
<div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">2</div>
<div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">3</div>
<div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">4</div>
</div>
页面布局的时候加一个行可以直接顶过去
如果有设计稿,直接改成2x,然后单位改成 vw或者是vh即可
没有设计稿的话,就按照上面的换算方式去计算即可
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
/* 将 50 * 50的盒子转换为vw */
/* iphone 6 视口 10rem 1vw= 3.75 */
div {
/* width: 1.3333rem / 3.75; */
/* 比起rem会更香,之前rem总是需要控制媒体查询等等,里面的方块盒子会自动缩放*/
width: 13.33333vw;
height: 13.33333vw;
background-color: pink;
font-size: 1.23vw;
}
</style>
</head>
<body>
<div>kk</div>
</body>
</html>
div盒子的大小会随着页面的宽度的大小来进行缩放
移动端不用太担心兼容性问题,但是在vw在pc端兼容性不是很好,切记
真正在使用的时候 vh很少使用,都是用vw的话,就是等比例缩放