当前位置: 首页 > news >正文

【Effective Web】常见的css布局方式--三栏布局

常见的css居中方式–三栏布局

第一种实现:table布局(不推荐)

缺点:在table加载前,整个table都是空白的,且修改布局排版都十分困难

    <table class="container"><td class="left"></td><td class="middle"></td><td class="right"></td></table>
<style>.container {width: 500px;height: 100px;.left {width: 100px;height: 100px;background-color: red;}.middle {height: 100px;background-color: green;}.right {width: 100px;height: 100px;background-color: blue;}}
</style>

在这里插入图片描述

第二种实现:float

优点:实现简单,支持性好
缺点:由于float使得其他非float的元素围绕元素排列,要计算相应的margin

如果按正常排列,效果会是这样,middle块会尽可能占空间,导致right元素被挤压到下一行
在这里插入图片描述

需要把right块提前,同时把middle块加上margin: 0 110px (左右100px + 10px)

    <div class="container"><div class="left" style="float: left">left</div><div class="right" style="float: right">right</div><div class="middle" style="margin: 0 110px">middle</div></div>

在这里插入图片描述

第三种实现:table-cell

由于table有自适应的特点,可以把需要自适应的middle的display设置为table-cell。如果要根据窗口自适应,加上一个很大的width,这里设置为2000px

    <div class="container"><div class="left" style="float: left">left</div><div class="right" style="float: right">right</div><div class="middle" style="display: table-cell; width: 2000px;">middle</div></div>

第四种实现:flex(推荐)

    <div class="container" style="display: flex"><div class="left">left</div><div class="middle" style="flex-grow: 1">middle</div><div class="right">right</div></div>

第五种实现:grid

与flex布局类似,不过可以做二维的布局

    <div class="container" style="display: grid; grid-template-columns: 100px auto 100px"><div class="left">left</div><div class="middle">middle</div><div class="right">right</div></div>

相关文章:

  • 网络安全:SQL注入防范
  • 在 React 中使用 ArcGIS JavaScript SDK 构建地图应用
  • STM32高级控制定时器(STM32F103):PWM输出模式
  • 数据赋能(122)——体系:数据清洗——技术方法、主要工具
  • AWS 批量添加安全组
  • Hi3861 OpenHarmony嵌入式应用入门--点灯
  • 图像识别技术在虚拟现实与增强现实中的应用
  • 数实融合创新发展 隆道分享企业级AI应用
  • C语言:文件操作
  • 保姆级pycharm远程连接linux服务器
  • QT——MySQL数据库联用
  • Windows CSC服务特权提升漏洞(CVE-2024-26229)
  • uniapp 微信小程序更改轮播图指示点
  • 如何移植libwebsockets
  • 工厂方法模式和抽象工厂
  • JS 中的深拷贝与浅拷贝
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • Git 使用集
  • gulp 教程
  • laravel5.5 视图共享数据
  • React-生命周期杂记
  • Spark RDD学习: aggregate函数
  • Vue UI框架库开发介绍
  • Vue2.0 实现互斥
  • vue-loader 源码解析系列之 selector
  • vue学习系列(二)vue-cli
  • 从输入URL到页面加载发生了什么
  • 番外篇1:在Windows环境下安装JDK
  • 分类模型——Logistics Regression
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 基于web的全景—— Pannellum小试
  • 记一次删除Git记录中的大文件的过程
  • 排序算法学习笔记
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 问题之ssh中Host key verification failed的解决
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 怎么把视频里的音乐提取出来
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • ​iOS安全加固方法及实现
  • "无招胜有招"nbsp;史上最全的互…
  • #100天计划# 2013年9月29日
  • #ifdef 的技巧用法
  • #Spring-boot高级
  • #进阶:轻量级ORM框架Dapper的使用教程与原理详解
  • #前后端分离# 头条发布系统
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (2)(2.10) LTM telemetry
  • (3)选择元素——(17)练习(Exercises)
  • (35)远程识别(又称无人机识别)(二)
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (poj1.2.1)1970(筛选法模拟)
  • (搬运以学习)flask 上下文的实现
  • (动手学习深度学习)第13章 计算机视觉---微调