CSS经典三栏布局方案(6种方法)

yizhihongxing

那么我们开始对“CSS经典三栏布局方案(6种方法)”的详细讲解。

什么是经典三栏布局

经典三栏布局通常是指将一个页面分成三列的布局,一般是左右两栏固定宽度,中间一栏自适应的布局结构。这个布局方法是网页布局设计中使用最为广泛的一种布局,相信很多前端工程师都需要掌握。

CSS经典三栏布局方案(6种方法)

前言

下面我们会对6种经典的三栏布局方案进行详细讲解,这些方法有些是经典的应用,有些则是比较新的实现方式,有了这些方法,你将更加熟练地掌握三栏布局的技巧。

方法一:float + margin

这是一种最基础的实现方式,主要利用 float 属性来对元素进行定位,通过 margin 属性来给元素留出空隙。下面是示例代码:

  <div id="container">
    <div id="left">left</div>
    <div id="right">right</div>
    <div id="main">main</div>
  </div>
  #container {
    overflow: hidden;
    background-color: #EEE;
  }
  #left {
    float: left;
    width: 100px;
    height: 200px;
    background-color: #F00;
    margin-right: 20px;
  }
  #right {
    float: right;
    width: 100px;
    height: 200px;
    background-color: #00F;
    margin-left: 20px;
  }
  #main {
    height: 200px;
    background-color: #0F0;
    overflow: hidden;
  }

方法二:float + position

这个方案同样是使用 float 属性来定位元素,但是使用了 position 属性,也是一种比较基础的方案。下面是示例代码:

  <div id="container">
    <div id="left">left</div>
    <div id="right">right</div>
    <div id="main">main</div>
  </div>
  #container {
    overflow: hidden;
    background-color: #EEE;
    position: relative;
  }
  #left {
    position: absolute;
    left: 0;
    width: 100px;
    height: 200px;
    background-color: #F00;
  }
  #right {
    position: absolute;
    right: 0;
    width: 100px;
    height: 200px;
    background-color: #00F;
  }
  #main {
    margin: 0 110px;
    height: 200px;
    background-color: #0F0;
    overflow: hidden;
  }

方法三:flexbox

CSS3 中添加的 flexbox 布局方式允许我们更简单地实现三栏布局,以下是示例代码:

  <div id="container">
    <div id="left">left</div>
    <div id="right">right</div>
    <div id="main">main</div>
  </div>
  #container {
    background-color: #EEE;
    display: flex;
  }
  #left {
    width: 100px;
    height: 200px;
    background-color: #F00;
  }
  #right {
    width: 100px;
    height: 200px;
    background-color: #00F;
  }
  #main {
    flex: 1;
    height: 200px;
    background-color: #0F0;
  }

方法四:table

使用 table 布局方式同样可以实现三栏布局,以下是示例代码:

  <table id="container">
    <tr>
      <td id="left">left</td>
      <td id="main">main</td>
      <td id="right">right</td>
    </tr>
  </table>
  #container {
    background-color: #EEE;
    width: 100%;
    height: 200px;
  }
  #left {
    width: 100px;
    background-color: #F00;
  }
  #right {
    width: 100px;
    background-color: #00F;
  }
  #main {
    background-color: #0F0;
  }

方法五:grid

CSS3 中新增的 grid 布局方式同样能够实现三栏布局,以下是示例代码:

  <div id="container">
    <div id="left">left</div>
    <div id="main">main</div>
    <div id="right">right</div>
  </div>
  #container {
    background-color: #EEE;
    display: grid;
    grid-template-columns: 100px auto 100px;
    grid-template-rows: 200px;
  }
  #left {
    background-color: #F00;
  }
  #right {
    background-color: #00F;
  }
  #main {
    background-color: #0F0;
  }

方法六:双飞翼布局

双飞翼布局是对圣杯布局的一种优化,其实质是将左右两栏通过相对定位后使用 margin 调整位置,中心主体内容通过负边距向左向右调整位置。以下是示例代码:

  <div id="container">
    <div id="main">main</div>
  </div>
  <div id="left">left</div>
  <div id="right">right</div>
  #container {
    background-color: #EEE;
    overflow: hidden;
    padding: 0 100px;
  }
  #main {
    width: 100%;
    height: 200px;
    background-color: #0F0;
    margin: 0 auto;
  }
  #left {
    width: 100px;
    height: 200px;
    background-color: #F00;
    position: relative;
    left: -100px;
    margin-left: -100%;
  }
  #right {
    width: 100px;
    height: 200px;
    background-color: #00F;
    position: relative;
    right: -100px;
    margin-right: -100%;
  }

示例说明

下面我们以方法六为例,演示双飞翼布局的具体实现步骤。

第一步,HTML 结构:

  <div id="container">
    <div id="main">main</div>
  </div>
  <div id="left">left</div>
  <div id="right">right</div>

第二步,CSS 样式:

  #container {
    background-color: #EEE;
    overflow: hidden;
    padding: 0 100px;
  }
  #main {
    width: 100%;
    height: 200px;
    background-color: #0F0;
    margin: 0 auto;
  }
  #left {
    width: 100px;
    height: 200px;
    background-color: #F00;
    position: relative;
    left: -100px;
    margin-left: -100%;
  }
  #right {
    width: 100px;
    height: 200px;
    background-color: #00F;
    position: relative;
    right: -100px;
    margin-right: -100%;
  }

通过以上代码的实现,我们可以得到一个完整的双飞翼布局。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CSS经典三栏布局方案(6种方法) - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • css3实现波纹特效、H5实现动态波浪效果

    CSS3实现波纹特效攻略: 常用技术 CSS3 transform CSS3 animation CSS3 transition box-shadow 实现步骤 首先我们需要创建一个HTML元素,为了方便,我们可以选用button元素。 然后在CSS中设置该元素的基本样式,包括大小、颜色和位置等。 接下来,我们需要设置hover伪类,当该元素被hover时,…

    css 2023年6月10日
    00
  • 微信小程序 如何引入外部字体库iconfont的图标

    请看以下的详细讲解: 一、前置准备工作 在进行外部字体库iconfont的图标引入之前,需要先确保以下工作已经完成: 在微信公众平台中创建小程序,并获得小程序的APPID。 在iconfont(https://www.iconfont.cn/)中选择需要引入的字体库,并下载当前字体库的包。 二、引入iconfont字体库 解压下载的字体包,将其中的iconf…

    css 2023年6月9日
    00
  • IDEA快捷键大全 快速页面重构

    IDEA快捷键大全 快速页面重构 为什么需要快捷键 在日常的开发工作中,大部分的时间都是在敲击键盘,不可避免地遇到了大量的重复操作。如果每次都用鼠标去慢慢点,效率自然是低下的。而快捷键可以帮助我们快速完成一些常用操作,提高开发效率,减少重复劳动。 IDEA快捷键大全 以下列出一些常用的 IDEA 快捷键,相关操作请自行了解。 快捷键 描述 Ctrl + Al…

    css 2023年6月10日
    00
  • css3新单位vw、vh的使用教程

    CSS3新单位vw、vh的使用教程 什么是vw、vh? vw: 视窗宽度的1/100,1vw等于视窗宽度的1% vh: 视窗高度的1/100,1vh等于视窗高度的1% vw、vh的优点 采用vw、vh单位编写CSS可以使网页在不同设备、不同分辨率下自适应布局,避免出现元素宽高失真的情况。 如何使用vw、vh vw、vh可以用在元素的宽度、高度、边距、内距等布…

    css 2023年6月9日
    00
  • element-ui如何取消el-table的hover状态(取消高亮显示)

    为取消el-table的hover状态,需要使用CSS代码来覆盖默认的样式。 以下是详细步骤: 打开调试工具,选中需要取消hover状态的表格。 在Elements选项卡中,寻找对应表格内某一单元格的HTML元素,并右键选择“检查”(或Inspect Element)。 在Styles选项卡中,找到该单元格的:hover伪类样式,即类似以下代码: .el-t…

    css 2023年6月9日
    00
  • css 单选按钮图标替换的方法

    针对“css 单选按钮图标替换的方法”的攻略,我将给您解答以下问题: 什么是单选按钮? 为什么需要替换单选按钮图标? 替换单选按钮图标的方法有哪些? 进行单选按钮图标替换的示例 1. 什么是单选按钮? 单选按钮是HTML中的一个表单控件,通常用于用户选择一项可选的内容。单选按钮可以选择一个选项,而其他选项都被取消选择。在HTML中,单选按钮由<inpu…

    css 2023年6月10日
    00
  • echarts中X轴显示特定个数label并修改样式的方法详解

    下面给您详细讲解“echarts中X轴显示特定个数label并修改样式的方法详解”的完整攻略。 1.修改X轴标签的样式 通过设置xAxis.axisLabel样式,可以修改X轴标签的样式,例如: xAxis: { type: ‘category’, data: [‘Mon’, ‘Tue’, ‘Wed’, ‘Thu’, ‘Fri’, ‘Sat’, ‘Sun’]…

    css 2023年6月10日
    00
  • Vue.js每天必学之过渡与动画

    Vue.js每天必学之过渡与动画 基本概念 在Vue.js中,过渡和动画是两个常用的效果。可以通过Vue内置的transition动画组件和CSS过渡来轻松地实现这些效果。 在Vue.js中,过渡是指在元素插入或删除时,在控制台视图中添加一些淡入淡出或滑入滑出的过渡效果。而动画是指在元素插入或删除时,在页面中添加一类时间轴动画效果。 使用transition…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部