CSS 1.css介绍 css指的是层叠样式表(cascading style sheets) 官方文档:https://www.w3school.com.cn/css/index.asp为什么需要c
顺晟科技
2021-09-23 10:32:04
130
CSS的常见的布局方式
(1)flex布局
采用flex布局的元素叫做容器,其所有的子元素自动成为容器成员,成为flex项目
容器属性:
flex-direction:row | row-reverse | column | column-reverse项目属性
order:定义项目的排列顺序,数值越小,排列越靠前,默认为0flex-grow:定义项目的放大比例,默认为0,即如果存在剩余空间也不放大(2)grid布局
网格布局(grid)是最强大的css布局
采用网格布局的区域叫做容器,容器内部采用网格定位的子元素,称为项目。
容器属性
display: grid | inliine-grid 指定一个容器采用网格布局grid-template-columns: 定义每一列的宽度gird-template-rows:定义每一行的行高grid-row-gap:用来设置行间距grid-column-gap:用来设置列间距grid-gap:<gid-row-gap> <grid-column-gap>项目属性
grid-column-start:左边框所在的垂直网格线grid-column-end:右边框所在的垂直网格线grid-row-start:上边框所在的水平网格线grid-row-end:下边框所在的水平网格线grid-column:是grid-column-start 和 grid-column-end 的简写grid-row:是grid-row-start 和 grid-row-end 的简写.item-1 {
grid-column: 1 / 3;
grid-row: 1 / 2;
}
/* 等同于 */
.item-1 {
grid-column-start: 1;
grid-column-end: 3;
grid-row-start: 1;
grid-row-end: 2;
}
justify-self:设置单元格内容的水平位置(左中右)align-self:设置单元格内容的垂直位置(上中下)place-self:align-self属性和justify-self属性的合并简写形式。圣杯和双飞翼布局,都是三栏,中间自适应的布局
(3)圣杯布局
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>圣杯布局</title>
<style>
* {
margin: 0;
padding: 0;
}
.header,
.footer {
height: 100px;
line-height: 100px;
background-color: green;
text-align: center;
font-size: 30px;
font-weight: bolder;
}
.footer {
background-color: goldenrod;
}
.container {
padding: 0 220px 0 200px;
overflow: hidden;
}
.left,
.middle,
.right {
position: relative;
float: left;
min-height: 130px;
word-break: break-all;
}
.left {
margin-left: -;
left: -200px;
width: 200px;
background-color: red;
}
.right {
margin-left: -220px;
right: -220px;
width: 220px;
background-color: green;
}
.middle {
width: ;
background-color: blue;
}
</style>
</head>
<body>
<div>header</div>
<div>
<div>
<h4>middle</h4>
<p>
middlemiddlemiddlemiddlemiddlemiddlemiddlemiddle
middlemiddlemiddlemiddlemiddlemiddlemiddlemiddle
middlemiddlemiddlemiddlemiddlemiddlemiddlemiddle
middlemiddlemiddlemiddlemiddlemiddlemiddlemiddle
middlemiddlemiddlemiddlemiddlemiddlemiddlemiddle
middlemiddlemiddlemiddlemiddle
</p>
</div>
<div>
<h4>left</h4>
<p>
leftleftleftleftleftleftleftleftleftleftleftleft
leftleftleftleftleftleftleftleftleftleftleftleft
leftleftleftleftleftleftleftleftleftleftleftleft
</p>
</div>
<div>
<h4>right</h4>
<p>
rightrightrightrightrightrightrightrightrightright
rightrightrightrightrightrightrightrightrightright
rightrightrightrightrightrightright
</p>
</div>
</div>
<div>footer</div>
</body>
</html>
(4)双飞翼布局
双飞翼布局和圣杯布局很类似,不过是在middle的div里又插入一个div,通过调整内部div的margin值,实现中间栏自适应,内容写到内部div中。
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>双飞翼布局</title>
<style>
* {
margin: 0;
padding: 0;
}
.header,
.footer {
height: 100px;
line-height: 100px;
background-color: green;
text-align: center;
font-size: 30px;
font-weight: bolder;
}
.footer {
background-color: goldenrod;
}
.container {
overflow: hidden;
}
.left,
.middle,
.right {
float: left;
min-height: 130px;
word-break: break-all;
}
.left {
margin-left: -;
width: 200px;
background-color: red;
}
.right {
margin-left: -220px;
width: 220px;
background-color: green;
}
.middle {
width: ;
height: ;
background-color: blue;
}
.inner {
margin: 0 220px 0 200px;
min-height: 130px;
background: blue;
word-break: break-all;
}
</style>
</head>
<body>
<div>header</div>
<div>
<div>
<div>
<h4>middle</h4>
<p>
middlemiddlemiddlemiddlemiddlemiddlemiddlemiddle
middlemiddlemiddlemiddlemiddlemiddlemiddlemiddle
middlemiddlemiddlemiddlemiddlemiddlemiddlemiddle
middlemiddlemiddlemiddlemiddlemiddlemiddlemiddle
middlemiddlemiddlemiddlemiddlemiddlemiddlemiddle
middlemiddlemiddlemiddlemiddle
</p>
</div>
</div>
<div>
<h4>left</h4>
<p>
leftleftleftleftleftleftleftleftleftleftleftleft
leftleftleftleftleftleftleftleftleftleftleftleft
leftleftleftleftleftleftleftleftleftleftleftleft
</p>
</div>
<div>
<h4>right</h4>
<p>
rightrightrightrightrightrightrightrightrightright
rightrightrightrightrightrightrightrightrightright
rightrightrightrightrightrightright
</p>
</div>
</div>
<div>footer</div>
</body>
</html>
参考文献:https://juejin.cn/post/684490...
09
2022-11
09
2022-11
09
2022-11
09
2022-11
09
2022-11
19
2022-10