首页 > 其他分享 >CSS 如何实现“圣杯”布局?

CSS 如何实现“圣杯”布局?

时间:2023-02-09 13:07:05浏览次数:36  
标签:right 圣杯 布局 width grid background left CSS 200px


 “圣杯” 布局是一种典型的网页布局结构,如下所示:

CSS 如何实现“圣杯”布局?_CSS

实现方式有多种,下面一一给出代码实现。

1. Flex布局来实现

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<style>
* {
margin: 0;
padding: 0;
}

.header,
.footer {
height: 40px;
width: 100%;
background: red;
}

.container {
display: flex;
}

.middle {
flex: 1;
background: yellow;
}

.left {
width: 200px;
background: pink;
}

.right {
background: aqua;
width: 200px;
}
</style>
</head>

<body>
<div class="header">这里是头部</div>
<div class="container">
<div class="left">左边</div>
<div class="middle">中间部分</div>
<div class="right">右边</div>
</div>
<div class="footer">这里是底部</div>
</body>

</html>

2. Float布局来实现(全部float:left)

<!DOCTYPE html>
<html lang="en">

<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">
<style>
* {
margin: 0;
padding: 0;
}

.header,
.footer {
height: 40px;
width: 100%;
background: red;
}

.footer {
clear: both;
}

.container {
padding-left: 200px;
padding-right: 200px;
}

.container div {
position: relative;
float: left;
}

.left {
width: 200px;
background: pink;
margin-left: -100%;
left: -200px;
}
.middle {
width: 100%;
background: yellow;
}

.right {
width: 200px;
background: aqua;
margin-left: -200px;
left: 200px;
}
</style>
</head>

<body>
<div class="header">这里是头部</div>
<div class="container">
<div class="middle">中间部分</div>
<div class="left">左边</div>
<div class="right">右边</div>
</div>
<div class="footer">这里是底部</div>
</body>

</html>

3. Float布局来实现(左边 float: left, 右边 float: right)

<!DOCTYPE html>
<html lang="en">
<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">
<style>
* {
margin: 0;
padding: 0;
}

.header,
.footer {
height: 40px;
width: 100%;
background: red;
}

.container {
overflow: hidden;
}

.middle {
background: yellow;
}

.left {
float: left;
width: 200px;
background: pink;
}

.right {
float: right;
width: 200px;
background: aqua;
}
</style>
</head>

<body>
<div class="header">这里是头部</div>
<div class="container">
<div class="left">左边</div>
<div class="right">右边</div>
<div class="middle">中间部分</div>
</div>
<div class="footer">这里是底部</div>
</body>

</html>

4. 绝对定位来实现

<!DOCTYPE html>
<html lang="en">

<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">
<style>
* {
margin: 0;
padding: 0;
}

.header,
.footer {
height: 40px;
width: 100%;
background: red;
}

.container {
min-height: 22px;
position: relative;
}

.container>div {
position: absolute;
}

.middle {
left: 200px;
right: 200px;
background: yellow;
}

.left {
left: 0;
width: 200px;
background: pink;
}

.right {
right: 0;
width: 200px;
background: aqua;
}
</style>
</head>

<body>
<div class="header">这里是头部</div>
<div class="container">
<div class="left">左边</div>
<div class="right">右边</div>
<div class="middle">中间部分</div>
</div>
<div class="footer">这里是底部</div>
</body>

</html>

5. Grid布局来实现

<!DOCTYPE html>
<html lang="en">

<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">
<style>
body {
display: grid;
text-align: center;
}

.header {
background: red;
grid-row: 1;
grid-column: 1/5;
}

.left {
grid-row: 2;
grid-column: 1/2;
background: orange;
}

.middle {
grid-row: 2;
grid-column: 2/4;
background: rebeccapurple
}

.right {
grid-row: 2;
grid-column: 4/5;
background: cadetblue;
}


.footer {
background: gold;
grid-row: 3;
grid-column: 1/5;
}
</style>
</head>

<body>
<div class="header">这里是头部</div>
<div class="left">左边</div>
<div class="middle">中间部分</div>
<div class="right">右边</div>
<div class="footer">这里是底部</footer>
</div>
</body>

</html>

标签:right,圣杯,布局,width,grid,background,left,CSS,200px
From: https://blog.51cto.com/u_15959833/6046858

相关文章

  • 如何用CSS画一个五角星?
    对于这个五角星而言,我们可以拆分成三个部分,如下所示:将五角星分成三部分,对于最上面的三角,利用边框就可以快速实现,这个不难。但是下面的两个如何实现呢?其实也非常的简单,想一......
  • 浮动布局有哪些优点?有什么缺点?清除浮动有哪些方式?
    浮动布局简介:当元素浮动以后可以向左或向右移动,直到它的外边缘碰到包含它的框或者另外一个浮动元素的边框为止。元素浮动以后会脱离正常的文档流,所以文档的普通流中的框就变......
  • CSS 中最后一行中元素如何向左对齐
    自从CSS3.0出来以后,很多的页面布局都用弹性布来实现,特别是移动端,但是弹性布局也有它的弊端,就是最后一行如果数量不够,不会像我们正常的想法一样居左对齐。效果如下:代码如下:......
  • css3溢出隐藏的方法
    如果实现单行文本的溢出显示省略号同学们应该都知道用text-overflow:ellipsis属性来,当然还需要加宽度width属来兼容部分浏览。实现方法:overflow: hidden;text-overflow......
  • CSS 3.0实现文字悬停特效
    给大家分享一个用CSS3.0实现的网页特效,效果如下:以下是代码实现,欢迎大家复制粘贴和收藏。<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8">......
  • CSS 3.0实现模拟手机信号加载动画
    给大家分享一个用CSS3.0实现的模拟手机信各异的加载动画,效果如下: 以下是代码实现,欢迎大家复制、粘贴和收藏。<!DOCTYPEhtml><htmllang="en"><head><metach......
  • CSS 3.0实现炫酷发光特效
    给大家分享一个用CSS3.0实现的炫酷发光特效,效果如下:以下是代码实现,欢迎大家复制、粘贴和收藏。<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8">......
  • CSS 3.0实现卡片悬停立体特效
    今天给大家分享一个用CSS3.0实现的卡片悬停立体特效,效果如下:以下是代码实现,欢迎大家制复粘贴和收藏。<!DOCTYPEhtml><htmllang="en"><head><metacharset="U......
  • CSS 3.0文字悬停跳动特效
    给大家分享一个用CSS3.0实现的文字悬停跳动特效,效果如下:  以下是代码实现,欢迎大家复制粘贴和收藏。<!DOCTYPEhtml><htmllang="en"><head><metacharset="U......
  • CSS 3.0实现霓虹灯按钮动画特效
    今天给大家分享一个用CSS3.0实现的霓虹灯按钮动画特效,效果如下:以下是代码实现,欢迎大家复制粘贴和收藏。<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8">......