圣杯布局实现

news2024/9/20 10:45:15

是什么?

【圣杯布局是两边固定宽度,中间自适应的三栏布局】

圣杯布局是网页排版布局中的一种常见方式,通常用于具有两个侧边栏和一个中间内容区域的网页设计。

这种布局将整个页面区域分为三个部分:顶部导航栏、左侧边栏、右侧边栏以及中间的主要内容区域

特点:

圣杯布局的特点是左右两侧的栏目通常宽度相等,而中间的主要内容区域则相对较宽。

应用:

通常可用于博客、新闻网站等内容丰富,多栏目展示的网页设计

优势:

圣杯布局的优势在于提供了丰富的信息展示空间,可以让用户快速的找到自己需要的信息,但布局中各个元素大小的变化可能影响页面的响应性能,需要在设计时进行仔细考虑和优化。

应用1:

采用绝对定位方式实现圣杯布局,主要思路是左右两边的盒子采用绝对定位固定宽高,中间的盒子用margin-left和margin-right将盒子固定在中间

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>圣杯布局</title>
    <!-- 圣杯布局是两边固定宽度,中间自适应的三栏布局 -->
    <style>
        html,body{
            margin: 0;
            padding: 0;
        }
        .box {
            position: relative;
            width: 100vw;
            height: 200px;
            margin: 100px auto;
            background-color: pink;
        }
        
        .box .box-left {
            position: absolute;
            top: 0;
            left: 0;
            width: 200px;
            height: 100%;
            background-color: violet;
        }
        
        .box .box-right {
            position: absolute;
            top: 0;
            right: 0;
            width: 200px;
            height: 100%;
            background-color: violet;
        }
        
        .box .box-middle {
            margin: 0px 40px;
            height: 100%;
            background-color: orange;
        }
    </style>
</head>
 
<body>
    <div class="box">
 
        <div class="box-left"></div>
 
        <div class="box-middle"></div>
 
        <div class="box-right"></div>
    </div>
</body>
 
</html>

 应用2:

采用flex布局实现圣杯布局,主要思路是左右两边的盒子固定高宽,中间的盒子采用flex:1占剩下的内容区域即可

<!DOCTYPE html>
<html lang="en">
 
<head>
 
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>圣杯布局2</title>
 
    <style>
        html,body{
            margin: 0;
            padding: 0;
        }
        .box {
            display: flex;
            width: 100vw;
            height: 100px;
            margin: 100px auto;
            background-color: pink;
        }
        
        .box .box-left {
            width: 40px;
            height: 100%;
            background-color: violet;
        }
        
        .box .box-right {
            width: 40px;
            height: 100%;
            background-color: violet;
        }
        
        .box .box-middle {
            flex: 1;
            background-color: orange;
        }
    </style>
</head>
 
<body>
 
    <div class="box">
 
        <div class="box-left"></div>
 
        <div class="box-middle"></div>
 
        <div class="box-right"></div>
    </div>
</body>
 
</html>

 

应用3:

grid实现圣杯布局相对简单,容易理解

grid-template-rows: 100px 300px 100px;
grid-template-rows:定义行数,并且设置每行的高度
grid-template-columns: 200px auto 150px;
grid-template-columns:定义列数,并且设置每列的宽度 auto:自适应
grid-row: 1;
grid-row:设置子元素在第一行
grid-column: 1/4;
设置子元素占几列。1/4表示,该子元素占1、2、3列;2/4表示占2、3列

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        body{
            min-width: 700px;
            padding: 50px 50px;
        }
        .container{
            display: grid;
            grid-template-rows: 100px 300px 100px;
            grid-template-columns: 200px auto 150px;
        }
        .header{
            width: 100%;
            height: 100px;
            background-color: bisque;
            grid-row: 1;
            grid-column: 1/4;
        }
        .footer{
            width: 100%;
            height: 100px;
            background-color: #71c29d;
            grid-row: 3;
            grid-column: 1/4;
        }
        .column{
            height: 300px;
            line-height: 300px;
        }
        .left{
            /* width: 200px; */
            background-color: pink;
            grid-row: 2;
            grid-column: 1/2;
        }
        .center{
            background-color: skyblue;
            grid-row: 2;
            grid-column: 2/3;
        }
        .right{
            /* width: 150px; */
            background-color: greenyellow;
            grid-row: 2;
            grid-column: 3/4;
        }
        
    </style>
</head>
<body>
    <div class="container">
        <div class="header">header</div>
        <div class="left column">left</div>
        <div class="center column">center</div>
        <div class="right column">right</div>
        <div class="footer">footer</div>
    </div>  
    
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/536659.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IDEA直接请求controller,不用postman请求http接口

generated-requests.http工具用法 第一步&#xff1a;点击下面按钮&#xff0c;HTTP Client 第二步、生成generated-requests.http文件 第三步、更改服务的ip和端口&#xff0c;启动服务 请求实例&#xff1a; 1、post请求&#xff0c;body传参&#xff1a; POST http://loc…

新库上线 | CnOpenData·A股上市公司违规处罚数据

A股上市公司违规处罚数据 一、数据简介 据《上市公司信息披露管理办法》&#xff0c;上市公司作为信息披露义务人&#xff0c;应真实、准确、及时、完整地向市场公开依法及自愿披露的信息。这些公开披露的信息包含但不仅限于公司基本情况、主要会计数据和财务指标、股东持股情…

markdown数据转换,处理html2canvas+jsPDF下载后文字截断问题(记录)

声明&#xff1a;此篇文章并不是最优解决办法&#xff0c;下载pdf这一步主要参考睡衣大佬提供的思路和代码&#xff0c;个人在此基础上进行细微修改处理段落文字截断&#xff0c;勉强实现不截断文字效果&#xff0c;但也有诸多限制和不足。 原文引路&#xff1a;https://blog.c…

软件测试基础面试题大全(下)

11. 一个输入框&#xff0c;如何编写测试用例&#xff1f; 字符型输入框 1. 字符型输入框&#xff1a;英文全角、英文半角、数字、空或者空格、特殊字符“~&#xff01;#&#xffe5;%……&*&#xff1f;[]{}”特别要注意单引号和&符号。禁止直接输入特殊字符时&…

nodejs安装及配置过程

目录 如何查看自己电脑中有没有下载nodejs 请问应该如何更新nodejs呢&#xff1f; 为什么称nodejs为vue脚手架呢&#xff1f; 如何打开系统变量呢 C:\Users\abner>npm config set registry https: registry.npm.taobao.org npm WARN invalid config registry"http…

Mysql 学习(十 二)查询优化 Explain

什么是Explain&#xff1f; 一条查询语句经过Mysql查询优化器的各种基于成本和规则的优化后生成一个所谓的执行计划&#xff0c;而Explain 语句可以让我们知道执行计划的语法&#xff0c;从而我们有针对性的提升性能举例子&#xff1a;EXPLAIN SELECT 1 由此我们得到了一些参数…

Prompt 指南

https://github.com/OleNet/YouPromptMe/tree/gh-pages/you-prompt-me 这是一份如何调整 Prompt 得到更漂亮的图片的经验性文档。结果和经验都来源于文心 ERNIE-ViLG Demo 和社区的资料。 极乐迪斯科里的猫,故障艺术 呼吁与准则 机器生成图片的最终目的还是便捷地为人类创造…

Cyanine7-Hylauronic菁染料CY7标记透明质酸Cy7-Hylauronic

荧光CY7是一种近红外荧光染料&#xff0c;具有高吸收和高荧光发射强度&#xff0c;适用于生物医学研究中的细胞成像和药物传递等领域。而荧光Cy7-Hylauronic透明质酸则是将荧光CY7与透明质酸结合而成的复合物&#xff0c;可以在细胞内或体内被稳定地释放&#xff0c;具有良好的…

【Python入门】Python循环语句(while循环的嵌套应用)

前言 &#x1f4d5;作者简介&#xff1a;热爱跑步的恒川&#xff0c;致力于C/C、Java、Python等多编程语言&#xff0c;热爱跑步&#xff0c;喜爱音乐的一位博主。 &#x1f4d7;本文收录于Python零基础入门系列&#xff0c;本专栏主要内容为Python基础语法、判断、循环语句、函…

centos7.5离线安装部署TiDB-6.5.0分布式系统

centos7.5离线安装部署TiDB-6.5.0分布式系统 一、需求&#xff0c;为什么要部署TiDB-6.5.0分布式系统 当前绝大部分企业的业务数据都分散在不同的系统中&#xff0c;没有一个统一的汇总&#xff0c;随着业务的发展&#xff0c;企业的决策层需要了解整个公司的业务状况以便及时…

抖音seo源码保姆式服务搭建|定制产品开发分享

抖音seo霸屏&#xff0c;是一种专为抖音视频创作者和传播者打造的视频批量剪辑&#xff0c;批量分发产品。使用抖音seo霸屏软件&#xff0c;可以帮助用户快速高效的制作出高质量的优质视频。 使用方法&#xff1a;1. 了解用户的行为习惯 2. 充分利用自身资源进行开发 3. 不…

蓝桥杯第十四届青少年Python组省赛试题--第4题

提示信息&#xff1a; 杨辉三角就是一个用数排列起来的三角形&#xff08;如下图&#xff09;&#xff0c;杨辉三角规则如下&#xff1a; 1&#xff09;每行第一个数和最后一个数都为1&#xff0c;其它每个数等于它左上方和右上方的两数之和&#xff1b; 2&#xff09;第n行有n…

FiftyOne 系列教程(1)FiftyOne简介及跑通官网的demo案例

文章目录 简介demo效果 简介 FiftyOne 是一个数据集管理和模型分析工具&#xff0c;提供灵活的 API 和直观的应用程序&#xff0c;作为开源“数据集的 IDE”。可以非常方便的做出来自己的算法与baseline之间的对比效果图在更多数据集上获得结果&#xff0c;通常是你以前从未使…

logstash同步数据从kafka到es集群

背景&#xff1a;需求是这样的&#xff0c;原始文件是txt文件&#xff08;每天300个文件&#xff09;&#xff0c;最终想要的结果是每天将txt中的数据加载到es中&#xff0c;开始的想法是通过logstash加载数据到es中&#xff0c;但是对logstash不太熟悉&#xff0c;不知道怎么讲…

数据仓库是什么?什么是列式存储?

事务和分析 在早期的业务数据处理过程中&#xff0c;一次典型的数据库写入通常与一笔 商业交易&#xff08;commercial transaction&#xff09; 相对应&#xff1a;卖个货、向供应商下订单、支付员工工资等等。但随着数据库开始应用到那些不涉及到钱的领域&#xff0c;术语 交…

Liunx 套接字编程(2)TCP接口通信程序

1.TCP通信程序的编写 面向连接、可靠传输、提供字节流传输服务 客户端向服务器发送一个连接建立的请求流程&#xff0c;上图中服务端第三步详细流程 2.TCP接口 socket--创建套接字 int socket(int domain, int type, int protocol); bind---绑定 intbind(int sockfd, struct s…

自动化测试工具 —— selenium介绍及基本使用方法

Selenium是一个开源、免费、简单、灵活&#xff0c;对Web浏览器支持良好的自动化测试工具&#xff0c;在UI自动化、爬虫等场景下是十分实用的&#xff0c;能够熟练掌握并使用Selenium工具可以大大的提高效率。 Selenium简介 Selenium支持多平台、多浏览器、多语言去实现自动化…

声音合成——Foley Sound——DECASE项目——多模态智能感知与应用——项目复现

文章目录 概述项目复现配置环境下载并配置文件运行代码第一阶段&#xff0c;训练提取DTFR特征的模型资料搜集 train_vqvae.py 第二阶段&#xff0c;使用训练好的模型提取声音的DTFR特征torch.cuda.OutOfMemoryError: CUDA out of memory. 第三阶段&#xff0c;基于特征训练合成…

【软件测试】支付模块测试攻略,这些测试方法和注意事项你掌握了么?

对于大部分人而言&#xff0c;支付模块或许是日常生活中最为关注和使用的功能之一&#xff0c;因此&#xff0c;对于支付模块的质量控制也显得尤为重要。 但考虑到支付涉及到金钱流转等敏感信息&#xff0c;一旦出现问题可能带来非常严重后果。因此&#xff0c;在支付模块测试…

FastAPI 的路由介绍及使用

上一篇文章中&#xff0c;我介绍了 FastAPI 框架的安装和 HelloWorld 项目搭建方式。本文将介绍如何使用 Router 路由处理 FastAPI 中的请求。 什么是路由 路由 Router 就像是一个流水线上的线长&#xff0c;协调生产&#xff0c;下达命令给不同的组长进行分工&#xff0c;然…