CSS 布局

目录

一、单列布局

二、两列自适应布局

三、三列布局

1、圣杯布局

2、飞翼布局

(1)、左右浮动

(2)、calc() 算法

(3)、flex

四、等高布局

1.利用正padding+负margin

2.利用背景图片

3.模仿表格布局

4.使用边框和定位

五、粘连布局

六、三足鼎立布局


一、单列布局

二、两列自适应布局

一列由内容撑开,另一列撑满剩余宽度的布局方式

三、三列布局

1、圣杯布局

2、飞翼布局

三种方法实现 “双飞翼布局”:

(1)、左右浮动

* {
	margin: 0;
	padding: 0;
}
.clearfix::after {
	content: "";
	height: 0;
	line-height: 0;
	display: block;
	clear: both;
	visibility: hidden;
}
.top {
	height: 100px;
	background-color: #aaa;
}
.content {
	height: 300px;
}
.middle {
	width: 100%;
	float: left;
	height: 100%;
	background-color: #ff0;
	padding: 0px 100px;
	box-sizing: border-box;
}
.left {
	float: left;
	margin-left: -100%;
	width: 100px;
	height: 100%;
	background-color: #f00;
}
.right {
	float: left;
	margin-left: -100px;
	width: 100px;
	height: 100%;
	background-color: #00f;
}
.bottom {
	height: 100px;
	background-color: #666;
}

// html 中
<body>
	<header class="top"></header>
	<section class="content clearfix">
		<div class="middle">hello world</div>
		<div class="left">left</div>
		<div class="right">right</div>
	</section>
	<footer class="bottom"></footer>
</body>

(2)、calc() 算法

/* 其余样式,与第一种方法中的一样,恕不复写 */
// ...
.content {
	height: 300px;
}
.middle {
	float: left;
	width: calc(100% - 200px);
	height: 100%;
	background-color: #ff0;
	box-sizing: border-box;
}
.left {
	float: left;
	width: 100px;
	height: 100%;
	background-color: #f00;
}
.right {
	float: left;
	width: 100px;
	height: 100%;
	background-color: #00f;
}
// ...

// html 中(注意:顺序与第一种方法里的不同)
<body>
	<header class="top"></header>
	<section class="content clearfix">
		<div class="left">left</div>
		<div class="middle">hello world</div>
		<div class="right">right</div>
	</section>
	<footer class="bottom"></footer>
</body>

(3)、flex

/* 其余样式,与第一种方法中的一样,恕不复写 */
// ...
.content {
	height: 300px;
	display: flex;
}

.middle {
	flex: 1;
	width: 100%;
	height: 100%;
	background-color: #ff0;
	box-sizing: border-box;
}

.left {
	flex: 0 0 100px;
	width: 100px;
	height: 100%;
	background-color: #f00;
}

.right {
	flex: 0 0 100px;
	width: 100px;
	height: 100%;
	background-color: #00f;
}
// ...

// html 中(注意:顺序与第一种方法里的不同)
<body>
	<header class="top"></header>
	<section class="content clearfix">
		<div class="left">left</div>
		<div class="middle">hello world</div>
		<div class="right">right</div>
	</section>
	<footer class="bottom"></footer>
</body>

四、等高布局

子元素在父元素中高度相等的布局方式。

1.利用正padding+负margin

2.利用背景图片

3.模仿表格布局

4.使用边框和定位

五、粘连布局

六、三足鼎立布局

<div class="list-item" v-for='(item, index) in lists' :key='index'>
    <img class="picture" :src="item.headPortrait">
    <div class="content">
        <div class="title">item.name</div>
        <div class="state">itme.isSignIn</div>
        <div class="desc">item.time</div>
    </div>
</div>
.list-item {
  padding: 0.24rem 0.32rem;
  display: flex; // 关键点
  align-items: center;
  .cont {
    width: 100%;
  }
  .picture {
    width: 0.48rem;
    height: 0.48rem;
    margin-right: 0.32rem;
    object-fit: contain;
    object-position: center;
  }
  .title {
    float: left; // 关键点
    font-size: 0.34rem;
    font-weight: 400;
    color: #222A35;
  }
  .state {
    float: right; // 关键点
  }
  .state, .desc {
    font-size: 0.28rem;
    font-weight: 400;
    color: #999;
  }
  .desc {
    padding-top: 0.5rem; // 关键点
  }
}

效果见下图:

【参考文档】

几种常见的CSS布局 - 简书

CSS常见布局的几种实现方式(面试常考)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值