一.体验flex布局
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.container {
width: 800px;
height: 200px;
border: 1px solid red;
/* 把父元素设置为 弹性盒模型 */
display: flex;
/* 项目(子元素们)会默认按照主轴排列 */
}
.container .item {
width: 100px;
height: 100px;
border: 1px solid blue;
}
</style>
</head>
<body>
<div class="container">
<div class="item">item1</div>
<div class="item">item2</div>
<div class="item">item3</div>
<div class="item">item4</div>
<div class="item">item5</div>
</div>
</body>
</html>
二.父元素的属性flex-direction
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.container {
width: 800px;
height: 200px;
border: 1px solid red;
/* 把父元素设置为 弹性盒模型 */
display: flex;
/* flex-direction: ; */
/* row 默认值 主轴正常排列 */
/* row-reverse 主轴颠倒排列 */
/* column 副轴排列 */
/* column-reverse 副轴颠倒排列; */
flex-direction: row;
flex-direction: row-reverse;
flex-direction: column;
flex-direction: column-reverse;
}
.container .item {
width: 100px;
height: 100px;
border: 1px solid blue;
}
</style>
</head>
<body>
<div class="container">
<div class="item">item1</div>
<div class="item">item2</div>
<div class="item">item3</div>
<div class="item">item4</div>
</div>
</body>
</html>
三.父元素属性flex-wrap
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.container {
width: 800px;
height: 400px;
border: 1px solid red;
/* 把父元素设置为 弹性盒模型 */
display: flex;
/* flex-wrap: ;(换行) */
/* nowrap(默认 不换行); | wrap(换行 第一行在上方); | wrap-reverse(换行 第一行在下方); */
flex-wrap: nowrap;
flex-wrap: wrap;
flex-wrap: wrap-reverse;
}
.container .item {
width: 100px;
height: 100px;
border: 1px solid blue;
}
</style>
</head>
<body>
<div class="container">
<div class="item">item1</div>
<div class="item">item2</div>
<div class="item">item3</div>
<div class="item">item4</div>
<div class="item">item5</div>
<div class="item">item6</div>
<div class="item">item7</div>
<div class="item">item8</div>
<div class="item">item9</div>
<div class="item">item10</div>
<div class="item">item10</div>
<div class="item">item10</div>
<div class="item">item10</div>
<div class="item">item10</div>
<div class="item">item10</div>
<div class="item">item10</div>
<div class="item">item10</div>
<div class="item">item10</div>
<div class="item">item10</div>
</div>
</body>
</html>
四.父元素属性flex-flow
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.container {
width: 800px;
height: 400px;
border: 1px solid red;
/* 把父元素设置为 弹性盒模型 */
display: flex;
/* flex-flow: 主轴的方向 || 换行; */
/* flex-direction flex-wrap 简写 */
/* flex-flow: <flex-direction> || <flex-wrap>; */
flex-flow: column wrap;
}
.container .item {
width: 100px;
height: 100px;
border: 1px solid blue;
}
</style>
</head>
<body>
<div class="container">
<div class="item">item1</div>
<div class="item">item2</div>
<div class="item">item3</div>
<div class="item">item4</div>
<div class="item">item5</div>
<div class="item">item6</div>
<div class="item">item7</div>
<div class="item">item8</div>
<div class="item">item9</div>
<div class="item">item10</div>
<div class="item">item10</div>
<div class="item">item10</div>
<div class="item">item10</div>
<div class="item">item10</div>
<div class="item">item10</div>
<div class="item">item10</div>
<div class="item">item10</div>
<div class="item">item10</div>
<div class="item">item10</div>
</div>
</body>
</html>
五.父元素属性justify-content
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.container {
width: 800px;
height: 400px;
border: 1px solid red;
/* 把父元素设置为 弹性盒模型 */
display: flex;
/* 主轴上面的对齐方式 */
/* justify-content:
flex-start(默认值) 正常主轴排列
flex-end 主轴末尾对齐
center 主轴居中对齐
space-between 主轴两端对齐
space-around 元素之间的间距一致 左右两边的间距加起来=元素之间的间距; */
justify-content: flex-start;
justify-content: flex-end;
justify-content: center;
justify-content: space-around;
justify-content: space-between;
}
.container .item {
width: 100px;
height: 100px;
border: 1px solid blue;
}
</style>
</head>
<body>
<div class="container">
<div class="item">item1</div>
<div class="item">item2</div>
<div class="item">item3</div>
<div class="item">item4</div>
<div class="item">item5</div>
</div>
</body>
</html>
六.父元素属性aling-items
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.container {
width: 800px;
height: 400px;
border: 1px solid red;
/* 把父元素设置为 弹性盒模型 */
display: flex;
/* 副轴上面的对齐方式 */
/* align-items: */
/* flex-start | flex-end | center | baseline | stretch; */
align-items: flex-start;
align-items: flex-end;
align-items: center;
align-items: baseline;
align-items: stretch;
}
.container .item {
width: 100px;
/* height: 100px; */
border: 1px solid blue;
}
</style>
</head>
<body>
<div class="container">
<div class="item">item1</div>
<div class="item">item2</div>
<div class="item">item3</div>
<div class="item">item4</div>
<div class="item">item5</div>
</div>
</body>
</html>
七.你有几种写法让元素居中
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.content {
width: 800px;
height: 800px;
border: 1px solid red;
/* position: relative; */
/* 3.display: flex;
justify-content: center;
align-items: center; */
}
.content .box {
width: 100px;
height: 100px;
background-color: skyblue;
/* 1.margin: 350px auto; */
/* 2.position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%); */
}
</style>
</head>
<body>
<div class="content">
<div class="box"></div>
</div>
</body>
</html>
八.父元素属性align-content
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.container {
width: 800px;
height: 600px;
border: 1px solid red;
/* 把父元素设置为 弹性盒模型 */
display: flex;
flex-wrap: wrap;
/* align-content属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。 */
/* align-content:
stretch(默认) 默认排列方式
flex-start 开始对齐
flex-end 末尾对齐
center 居中对齐
space-between 两端对齐
space-around 元素之间的间隙一致*/
align-content: stretch;
align-content: flex-start;
align-content: flex-end;
align-content: center;
align-content: space-around;
align-content: space-between;
}
.container .item {
width: 100px;
height: 100px;
border: 1px solid blue;
}
</style>
</head>
<body>
<div class="container">
<div class="item">item1</div>
<div class="item">item2</div>
<div class="item">item3</div>
<div class="item">item4</div>
<div class="item">item5</div>
<div class="item">item6</div>
<div class="item">item7</div>
<div class="item">item8</div>
<div class="item">item9</div>
<div class="item">item10</div>
<div class="item">item10</div>
<div class="item">item10</div>
<div class="item">item10</div>
<div class="item">item10</div>
<div class="item">item10</div>
<div class="item">item10</div>
<div class="item">item10</div>
<div class="item">item10</div>
</div>
</body>
</html>
九.透明度
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.box {
width: 300px;
height: 300px;
background-color: black;
/* 透明度 */
/* 0-1 */
/* opacity: 0; */
}
</style>
</head>
<body>
<div class="box"></div>
<h3>123456</h3>
<script>
var box = document.querySelector('.box');
var timer = null;
box.onmouseenter = function () {
var num = 1;
timer = setInterval(function () {
num -= 0.1
if (num <= 0) {
clearInterval(timer);
} else {
box.style.opacity = num;
}
}, 50)
}
</script>
</body>
</html>
十.filter过滤(灰度)
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.box {
width: 300px;
height: 300px;
border: 1px solid red;
background-image: url(https://x.dscmall.cn/storage/data/gallery_album/141/original_img/141_P_1685299852438.png);
background-repeat: no-repeat;
background-size: cover;
/* 过滤 */
/* grayscale设置灰度 */
/* filter: grayscale(100%); */
/* filter: blur(10px); */
}
.box2,
.box3,
.box4 {
width: 600px;
height: 600px;
/* blur 设置模糊 */
filter: blur(200px);
position: absolute;
}
.box2 {
background-color: pink;
top: 50%;
margin-top: -300px;
left: 10%;
}
.box3 {
background-color: skyblue;
top: 40%;
left: 50%;
margin-left: -300px;
}
.box4 {
background-color: purple;
right: 10%;
top: 50%;
margin-top: -300px;
}
</style>
</head>
<body>
<div class="box"></div>
<div class="box2"></div>
<div class="box3"></div>
<div class="box4"></div>
</body>
</html>
十一.css函数(色相-饱和度-亮度)
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.box {
width: 200px;
height: 200px;
/* hsla 表示`色相-饱和度-亮度`(Hue-saturation-lightness)模式。 */
/* hsla(颜色值0-360, 饱和度0%-100%,亮度0%-100%, 透明度0-1) */
background-color: hsla(0, 100%, 50%, 1);
}
.box2 {
/* calc() 计算 */
/* 1920 */
/* 1440 */
/* 1560 */
/* 414 */
width: calc(100% - 100px);
height: 300px;
background-color: skyblue;
margin: 0 auto;
}
</style>
</head>
<body>
<div class="box"></div>
<div class="box2"></div>
</body>
</html>