1.超赞的flex
<style>
nav{
width: 1200px;
height: 100px;
background: pink;
margin:0 auto;
/* 设置弹性盒 */
display: flex;
text-align: center;
line-height: 100px;
}
section{
/* 项目的属性 flex:1;均分父元素宽度 */
flex: 1;
border-right: 1px solid #000;
background: springgreen;
}
</style>
</head>
<body>
<nav>
<section>全部商品</section>
<section>VIP服务</section>
<section>今日优品</section>
<section>三个字</section>
<section>还有五个字</section>
<section>当然啦六个字</section>
<section>商品</section>
</nav>
</body>
2.弹性盒容器的属性
<style>
.big{
width: 1000px;
height: 800px;
background: springgreen;
margin:0 auto;
/* 1、设置弹性盒 */
display: flex;
/* 2、更改主轴的方向 */
/* flex-direction: row; 默认值 可以理解为X轴 */
/* flex-direction: row-reverse; 主轴为水平反向 */
/* flex-direction: column; 将主轴方向设置为纵向 */
/* flex-direction: column-reverse; 将主轴方向设置为纵向反向 */
/* 3、项目是否折行 */
/* flex-wrap: nowrap;默认情况下 项目多的时候 我是不折行的 */
/* flex-wrap: wrap;折行 */
/* flex-wrap: wrap-reverse; 反向折行 */
/* 4、了解 复合属性 主轴的方向 与 项目是否折行的简写 */
/* flex-flow: column wrap; */
/* 5、项目在主轴上的分布 注意 设置给容器 是容器的属性 */
/* justify-content: flex-start; 默认值 主轴的开端 */
/* justify-content: center; 让项目整体居中于主轴 */
/* justify-content: flex-end; 让项目整体居于主轴末端 */
/* justify-content: space-around; 项目在主轴上两端环绕对齐 */
/* justify-content: space-between; 项目在主轴上两端顶格对齐 */
/* justify-content: space-evenly;项目在主轴上两端等距对齐 */
/* 6、项目在垂直交叉轴的分布情况 注意 设置给容器 是容器的属性 */
/* 假设 你现在没有给项目(子元素)设置高度 */
/* align-items: stretch;默认 值 项目没有设置高度 高度和容器一致 */
/* align-items: flex-start; 项目们居于垂直交叉轴上方 */
/* align-items: center; 项目们居中于垂直交叉轴 */
/* align-items: flex-end; 项目们居于垂直交叉轴末端 */
/* align-items: baseline; */
/* 7、多行项目在垂直交叉轴的排列方式 那你注意 首先 项目要多 其次 需要设置折行 */
flex-wrap: wrap;
/* align-content: stretch;默认值 项目没有设置高度 会均分容器高度 */
/* align-content: flex-start; 项目们都在垂直交叉轴上方 */
/* align-content: center;项目们都在垂直交叉轴中间 */
/* align-content: flex-end;项目都在垂直交叉轴末端 */
/* align-content: space-around;项目们在垂直交叉轴两端环绕 */
/* align-content: space-between;项目们在垂直交叉轴两端顶格对齐 */
/* align-content: space-evenly;等距对齐 */
}
section{
width: 100px;
height: 100px;
border:1px solid #000;
/* 我希望他依旧是100*100的 */
box-sizing: border-box;
background: cyan;
}
</style>
</head>
<body>
<div class="big">
<section style="line-height: 20px;">1</section>
<section style="line-height: 40px;">2</section>
<section style="line-height: 50px;">3</section>
<section style="line-height: 30px;">4</section>
<section style="line-height: 70px;">5</section>
<section>6</section>
<section>7</section>
<section>8</section>
<section>9</section>
<section>10</section>
<section>11</section>
<section>12</section>
<section>12</section>
<section>12</section>
<section>12</section>
<section>12</section>
<section>12</section>
<section>12</section>
<section>12</section>
<section>12</section>
<section>12</section>
<section>12</section>
<section>12</section>
</div>
</body>
</html>
<!-- <div id="box">
<div class="small">
<div class="little"></div>
</div>
</div>
容器:你给谁设置了display:flex;那么谁就是容器 一般可以视为父元素(假设说 你给#box设置了 那么#box就是.small的容器)
项目:容器里面的子元素 称为“项目” (.small就是#box的项目) 当然了 项目也可以设置display:flex;(.small也可以设置display:flex;那么.little就是.small的项目)
主轴:是项目排列的方向 ,默认可以理解为是X轴 但是你可以更改主轴的方向
垂直交叉轴:就是和主轴成90度的轴 默认是Y轴 当然 如果你将主轴更改了 假设将主轴更改为Y轴 那么 此时垂直交叉轴就是X轴 -->
3.弹性盒项目的属性
<style>
.big{
width: 1000px;
height: 500px;
background: red;
margin:0 auto;
/* 设置弹性盒 */
display: flex;
}
span{
width: 100px;
height: 100px;
border:1px solid #000;
background:springgreen ;
}
span:nth-of-type(2){
/* 1、项目的排列顺序 order:auto;默认值 值越大越在后面 可以为负值 */
order: -1;
background: cyan;
/* 项目在垂直交叉轴的排列方向 */
/* align-self: stretch;默认值 不设置高度 高度和容器一致 */
/* align-self: flex-start;居于垂直交叉轴上方 */
/* align-self: center;居于垂直交叉轴中间 */
/* align-self: flex-end;居于垂直交叉轴末端 */
}
</style>
</head>
<body>
<div class="big">
<span>1</span>
<span>2</span>
<span>3</span>
<span>4</span>
<span>5</span>
<span>6</span>
</div>
</body>
4.多列布局
<style>
*{
margin: 0;
padding: 0;
}
main{
width: calc(100% - 200px);
height: auto;
background: linear-gradient(to right,#3ce,#fb6);
margin:0 auto;
/* 你想要几列 */
column-count: 5;
-webkit-column-count: 5;
-moz-column-count: 5;
-ms-column-count: 5;
-o-column-count: 5;
/* 列间距 */
column-gap: 20px;
/* 列分割线 */
column-rule: 2px dotted #0f0;
/* 列高自适应 */
column-fill:auto;
/* 注意 要么 设置列数 就是有几列 要么 就设置列宽 不可以两个一起使用 */
/* column-width: 600px; */
}
figure{
border:1px solid #000;
background: #FFF;
/* 注意 一定是给每一列小块设置 */
break-inside: avoid;
}
img{
/* 设置大小 只设置宽度 高度会等比例适应 */
width: 100%;
/* 就代表宽度和figure一致 */
}
h1{
column-span: all;
}
</style>
</head>
<body>
<main>
<h1>好好学习,不然就会像某某某同学一样,月薪只能刚刚过万</h1>
<figure>
<img src="../images/1.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/2.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/3.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/4.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/5.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/6.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/7.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/8.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/9.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/10.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/11.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/12.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/13.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/14.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/15.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/16.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/17.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/18.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/19.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/20.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/21.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/22.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/23.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/24.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/25.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/26.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/27.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/28.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/29.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/30.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/31.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/32.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/33.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/34.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/35.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/36.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/37.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/38.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/39.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/40.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/41.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/42.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/43.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/44.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/45.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/46.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/47.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/48.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>
<img src="../images/49.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
<figure>4
<img src="../images/50.jpg" alt="">
<figcaption>今天周一了,我们年前年后不允许请假</figcaption>
</figure>
</main>
</body>
5.复合属性flex都代表了什么
<style>
section{
width: 1000px;
height: 400px;
background: red;
margin:100px auto;
/* 设置弹性盒 */
display: flex;
}
span{
width: 200px;
height: 100px;
border: 2px solid #000;
background: pink;
/* flex:1里面的第一个属性 */
/* flex-shrink:1 ; 默认值 项目在超出容器宽度时 都统一缩小 */
flex-shrink: 0;
}
span:nth-of-type(3n){
background: cyan;
flex-shrink: 1;
}
b{
width: 100px;
height: 100px;
background: pink;
border:1px solid #000;
/* flex:1里面的第二个属性 放大 */
/* flex-grow: 0;默认值 都不主动进行放大 */
flex-grow: 0;
}
b:nth-of-type(3){
flex-grow: 1;
}
b:nth-of-type(2){
flex-grow:3;
}
/* flex:1的第三个属性 设置剩余空间 */
mark{
width: 100px;
height: 100px;
border:1px solid #000;
}
mark:nth-of-type(3){
flex-basis: 300px;
flex-basis: 50%;
}
</style>
</head>
<body>
<section>
<span>第一个属性</span>
<span>第一个属性</span>
<span>第一个属性</span>
<span>第一个属性</span>
<span>第一个属性</span>
<span>第一个属性</span>
</section>
<section>
<b>第二个属性</b>
<b>第二个属性</b>
<b>第二个属性</b>
</section>
<section>
<mark>第三个属性</mark>
<mark>第三个属性</mark>
<mark>第三个属性</mark>
<mark>第三个属性</mark>
</section>
</body>
6.媒体查询
<style>
div{
width: 100%;
height: 200px;
}
/* 注意 and前后有空格 */
/* 媒体查询 @media */
@media screen and (min-width:1200px){
div{
background: cyan;
}
}
/* ----------------700~1200---- */
@media screen and (max-width:1200px) and (min-width:700px){
div{
background: red;
}
}
/* ---------------------700以下------ */
@media screen and (max-width:700px){
div{
background: purple;
}
}
</style>
</head>
<body>
<div></div>
</body>
7.骰子布局
<style>
div{
width: 200px;
height: 300px;
background: #DDD;
border-radius: 10px;
margin:50px auto;
box-shadow: 0px 0px 20px 3px #888;
/* 设置弹性盒 */
display: flex;
}
span{
width: 80px;
height: 80px;
border-radius: 50%;
background: red;
}
/* ----------------------------- */
/* 一筒 */
div:nth-of-type(1){
/* 项目在主轴上水平居中 */
justify-content: center;
/* 项目在垂直交叉轴居中 */
align-items: center;
}
/* 二筒 */
div:nth-of-type(2){
/* 更改主轴的方向 */
flex-direction: column;
/* 项目在垂直交叉轴居中 */
align-items: center;
/* 项目在主轴上两端环绕对齐 */
justify-content: space-around;
}
/* -------三筒----- */
div:nth-of-type(3){
/* 更改主轴的方向 */
flex-direction: column;
/* 项目在主轴上两端环绕对齐 */
justify-content: space-around;
}
div:nth-of-type(3) span:nth-of-type(2){
/* 单独在垂直交叉轴居中 */
align-self: center;
}
div:nth-of-type(3) span:last-of-type{
/* 单独在垂直交叉轴居中 */
align-self: flex-end;
}
/* -------四筒---- */
div:last-of-type{
/* 项目折行 */
flex-wrap: wrap;
justify-content: space-around;
/* 多行项目 在垂直交叉轴两端环绕 */
align-content: space-around;
}
</style>
</head>
<body>
<div>
<span></span>
</div>
<div>
<span></span><span></span>
</div>
<div>
<span></span><span></span><span></span>
</div>
<div><span></span><span></span><span></span><span></span></div>
</body>
8.弹性盒
<style>
nav{
width: 1200px;
height: 100px;
line-height: 100px;
text-align: center;
background: pink;
margin:0 auto;
display: flex;
}
section{
border-right: 1px solid #000;
flex: 1;
}
</style>
</head>
<body>
<nav>
<section>全部商品</section>
<section>全商品</section>
<section>商品</section>
<section>全部的商品</section>
<section>全商品</section>
<section>全部商品</section>
<section>全部商品</section>
</nav>
</body>
9.响应式
<style>
/* -----------------这里写的 就是全局状态下 -------- */
*{
margin: 0;
padding: 0;
}
nav{
width: 100%;/* 设置占一行宽度 */
padding:0 10%;/* 设置内容距离左右有个间距 */
box-sizing: border-box;/* 因为设置padding会长胖 还希望是100% 就设置了怪异盒模型 */
height: 60px;/* 设置高度 */
background: #444;/* 设置背景色 */
line-height: 60px;/* 设置行高=高度值 文字垂直居中 */
/* 使用弹性盒子 */
display: flex;/* 设置弹性盒子 让头部左右两个块 横向展示 */
/* 项目(头部左右)两端顶格对其 */
justify-content: space-between;
/* 文字大小和颜色可以继承 直接设置给nav */
font-size: 12px;
color:#ccc;
}
section{
padding:0 10px;/* 让每个文字左右有间距 */
}
.left section:first-of-type{
font-size: 18px;/* 左边第一个文字字体大 */
}
.left{
/* 设置弹性盒子 */
display: flex;/* 目的是让左边的7个section横向展示 */
}
aside{
display: flex;/* 右侧设置弹性盒子 */
align-items: center;/* 让项目水平居中 其实就是为了让图片垂直居中 */
}img{
display: none;/* 图片默认不显示 */
}
/* 开始媒体查询 页面宽度到1000的时候 左侧第一个和右侧第一个消失 */
@media screen and (max-width:1000px) and (min-width:700px){
/* 这个时候咋的了 左边第一个和右边第一个没啦 */
section:first-of-type{
display: none;
}
}
/* -------700以下的时候 左边只剩下第一个section 右边呢 出现一张图片 剩下其他的都没啦*/
@media screen and (max-width:700px){
section{/* 所有的section都消失 */
display: none;
}
.left section:first-of-type{
display: block;/* 左边第一个section是出现的 我们再设置一下 让人家出现 */
}
img{
display: block;/* 右边的图片显示 */
}
}
</style>https://www.bootcss.com/
</head>
<body>
<nav>
<!-- 头部左侧 -->
<div class="left">
<section>Bootstrap中文网</section>
<section>Bootstrap3中文文档</section>
<section>Bootstrap4中文文档</section>
<section>Sass 教程</section>
<section>Less 教程</section>
<section>jQuery API</section>
<section>网站实例</section>
</div>
<!-- 头部右侧 -->
<aside>
<section>关于</section>
<img src="../images/4.png" alt="">
</aside>
</nav>
</body>
10.移动端的概念
</head>
<body>
手机尺寸------手机的斜对角线
物理像素:是我们的电脑/手机一出厂 就固定死的
逻辑像素(虚拟像素):就是我们写页面使用的px 也就是说 你的设计图 使用的是逻辑像素
dpr:就是物理像素与逻辑像素之比 (设计图宽度/设备宽度)
</body>
</html>
以前 UI小姐姐 1:1出的设计图 你320px的屏幕 我就给你出320px的设计图
乔布斯 在iphone4 提出了一个概念 retina屏幕 ???? 视网膜可视化屏幕
ui小姐姐 就开始设计多倍图了 一般都是两倍图 也就是说 你320px的屏幕 我就给你出640px的设计图
你375px的屏幕 我就给你出750px的设计图
11.均匀分成五份
<style>
main{
width: 1275px;
height: auto;
background:palevioletred url(../images/a.png);
margin:0 auto;
column-count: 5;
}
.small{
width: 200px;
height: 300px;
border:1px solid #000;
margin-bottom: 20px;
background: pink;
}
</style>
</head>
<body>
<main>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
<div class="small"></div>
</main>
</body>
12.怪异盒模型
<style>
div{
width: 300px;
height: 300px;
padding:100px;
border:10px solid #000;
background: cyan;
margin:100px;
/* 我希望 我的盒子像button一样懂事 但凡设置了宽高 那么无论再怎么设置padding border我都是之前的宽高 */
/* 怪异盒模型 */
/* box-sizing: content-box; 默认值 标准盒模型 你设置的width从内容区算 */
box-sizing: border-box;
}
</style>
</head>
<body>
<div></div>
</body>