首页 > 其他分享 >圣杯布局和双飞翼布局的理解和区别,并用代码实现

圣杯布局和双飞翼布局的理解和区别,并用代码实现

时间:2024-11-21 11:55:47浏览次数:1  
标签:right 圣杯 width 布局 双飞翼 宽度 150px margin left

圣杯布局和双飞翼布局都是前端开发中常用的页面布局方式,目标都是实现一个三栏布局,其中左右两栏固定宽度,中间栏自适应宽度,并且优先加载中间内容。它们的核心思想都是利用 float 和负边距来实现,但实现方式略有不同。

圣杯布局 (Holy Grail Layout):

  • 原理: 中间栏放最前面,左右两栏分别浮动到两侧。利用相对定位和负边距,将左右两栏移动到中间栏的左右两侧,并覆盖中间栏一部分区域。为了防止内容被覆盖,中间栏设置左右 padding 值,大小与左右两栏宽度一致。

  • 代码实现:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>圣杯布局</title>
    <style>
        body {
            min-width: 550px; /* 防止左右栏重叠 */
        }
        .container {
            padding-left: 200px; /* 左栏宽度 */
            padding-right: 150px; /* 右栏宽度 */
        }
        .center, .left, .right {
            position: relative;
            float: left;
            min-height: 100px;
        }
        .center {
            width: 100%;
            background-color: lightgreen;
        }
        .left {
            width: 200px;
            right: 200px; /* 左栏宽度 */
            margin-left: -100%;
            background-color: lightcoral;
        }
        .right {
            width: 150px;
            margin-right: -150px; /* 右栏宽度 */
            background-color: lightblue;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="center">Center</div>
        <div class="left">Left</div>
        <div class="right">Right</div>
    </div>
</body>
</html>

双飞翼布局 (Double Wing Layout):

  • 原理: 与圣杯布局类似,但左右两栏不使用相对定位,而是直接放在中间栏内部,利用 margin 负值使其移动到两侧。中间栏使用一个内部 div 来包裹内容,并设置左右 margin 值,大小与左右两栏宽度一致,防止内容被覆盖。

  • 代码实现:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>双飞翼布局</title>
    <style>
        body {
            min-width: 550px; /* 防止左右栏重叠 */
        }
        .container {
            float: left;
            width: 100%;
        }
        .center {
            margin-left: 200px; /* 左栏宽度 */
            margin-right: 150px; /* 右栏宽度 */
        }
        .center .inner {
            margin-left: -200px; /* 左栏宽度 */
            margin-right: -150px; /* 右栏宽度 */
            background-color: lightgreen;
            min-height: 100px;
        }
        .left {
            float: left;
            width: 200px;
            margin-left: -100%;
            background-color: lightcoral;
            min-height: 100px;
        }
        .right {
            float: right;
            width: 150px;
            margin-right: -150px; /* 右栏宽度 */
            background-color: lightblue;
            min-height: 100px;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="left">Left</div>
        <div class="right">Right</div>
        <div class="center">
            <div class="inner">Center</

标签:right,圣杯,width,布局,双飞翼,宽度,150px,margin,left
From: https://www.cnblogs.com/ai888/p/18560339

相关文章

  • 界面控件DevExpress WPF中文教程:网格视图数据布局的列和卡片字段
    DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。无论是Office办公软件的衍伸产品,还是以数据为中心......
  • 从五种网页布局到八种常用布局四十二种CSS方法
    /*contentstyleend*//*五种布局一、流式布局相对于屏幕大小设置元素百分百自适应。float:right或left二、网格布局Grid二位表格(网格)。display:grid。三、弹性布局Flexbox容器内自动调整元素大小和位置。display:flex;四、浮动布局float多列布局。overflow:hidden;floa......
  • Harmony 应用开发常用布局介绍
    在Harmony应用开发中,合理的布局是构建美观且易用界面的关键。以下是几种常用的布局方式。1.Column布局特点:Column是一种垂直方向的线性布局容器。它将子组件按照从上到下的顺序依次排列。示例代码:Column({space:5}){Text("Column")Button(......
  • 实现简易计算器 网格布局 QT环境 纯代码C++实现
    问题:通过代码完成一个10以内加减法计算器。不需要自适应,界面固定360*350。"="按钮90*140,其它按钮90*70。参考样式#defineDEFULT_BUTTON_STYLE"\QPushButton{\color:#000000;\border:1pxsolid#AAAAAA;\border-radius:0;\background-color:#FFFFFF;......
  • 人工智能之图像预处理、数据库、GUI布局的综合应用(数据库部分、GUI布局设计)
    文章目录前言一、数据库创建数据表查询:修改、删除GUI布局成果展示进行图像处理和车牌识别:查询记录:总结前言之前进行opencv项目的编写,我们成功写出了智能车牌识别系统(初学版)以下对数据库和GUI布局设计部分进行补充,对于知识点和基本补充部分可以翻看我之前的笔记,......
  • 第九章DIV+CSS布局
    9.1DIV+CSS概述9.1.1认识DIVdiv标签在Web标准网页中属于块级元素9.1.2DIV的宽高设置9.1.2.1宽高属性9.1.2.2div标签内直接设置宽高9.1.2.3div使用选择器设置宽高<!DOCTYPEhtml><html> <head> <metacharset="utf-8"/> <title></title> <styletype......
  • 第九章 DIV+CSS布局
    9.1DIV+CSS概述9.1.1认识DIV<div>标签是HTML中的一种块级元素,用于定义文档中的一个分区或区域。它是一个容器,可以包含文本、图像、列表、表格、段落、其他块级元素,甚至是其他<div>元素。<div>标签本身不会在页面上显示任何内容,但它可以作为组织和布局HTML文档的工具9.......
  • 第九章 DIV+CSS布局
    9.1DIV+CSS概述 DIV+CSS是Web设计标准,它是一种网页的布局方法。与传统中通过表格(table)布局定位的方式不同,它可以实现网页页面内容与表现相分离。DIV组成了网页的格局,CSS则装饰了格局,比如建一栋房子,开始的架子是DIV,架子搭建好后开始装饰,这个装饰就是CSS样式。用DIV+CSS布......
  • 第9章DIV+CSS布局
    9.1DIV+CSS概述9.1.1认识DIV无特殊作用,一个盒子9.1.2DIV的宽高设置9.1.2.1宽高属性宽度:width高度:height单位:可使用像素或者百分比9.1.2.2div标签内直接设置宽高使用style属性设置宽高9.1.2.3div使用选择器设置宽高可使用class,id等选择器9.1.2.4div高度的百......
  • 第九章 DIV+CSS布局
    9.1DIV+CSS概述9.1.1认识DIVdiv标签在Web标准的网页中使用非常频繁,属于块状元素。div标签是双标签,即以<div></div>的形式存在,中间可以放置任何内容,包括其他的div标签。但是在没有CSS的影响下,每个div标签只占据一行,即一行只能容纳一个div标签。9.1.2DIV的宽高设置对div......