CSS 两栏布局

news2024/11/18 23:48:29

目录

CSS两栏布局(左列定宽,右列自适应宽)

方法一:浮动+margin

方法二:定位+margin

方法三:浮动+BFC

方法四:Flex布局

方法五:able布局

CSS两栏布局(左列不定宽,右列自适应宽)


CSS两栏布局(左列定宽,右列自适应宽)

方法一:浮动+margin

<div class="container">
	<div class="left">定宽</div>
	<div class="right">自适应</div>
</div>


<style>

/* 不给高度不行,不给宽度可以自适应 */
.container {
    height: 300px;
}
.left {
    float: left;
    /* 定宽 */
    width: 200px;
    height: 100%;
    background-color:chartreuse;
}

.right {
    /* 不设置宽度自适应 */
    height: 100%;
    background-color:coral;
    margin-left: 200px;
}


</style>

方法二:定位+margin

html不变

/* 不给高度不行,不给宽度可以自适应 */
.container {
    position: relative;
    height: 300px;
}
.left {
    position: absolute;
    left: 0;
    /* 定宽 */
    width: 200px;
    height: 100%;
    background-color:chartreuse;
}

.right {
    /* 不设置宽度自适应 */
    height: 100%;
    
    /* 方法一:margin-left: 200px(只设置边距也可以实现) */
    /* 方法二:定位*/
    position:absolute;
    left: 200px;
    right: 0;  /*不设置这个,宽度会缩在一起,不自适应展开*/

    background-color:coral;
}

方法三:浮动+BFC

.container {
    height: 300px;
}
.left {
    float: left;
    /* 定宽 */
    width: 200px;
    height: 100%;
    background-color: chartreuse;
}
.right {
    /* 不设置宽度自适应 */
    height: 100%;
    overflow: hidden;  /*触发BFC条件*/
    background-color: coral;
}

原理:给正常元素添加BFC属性,正常元素就不会被遮挡,且环绕浮动元素排开。

以上脱离文档流的方式(如浮动、定位),他们的大体思路都是: 先让左定宽元素脱离文档流,这样可以右列正常能够与左列脱离文档流的元素“站成一排”,此时左列元素还覆盖着右列元素,最后,我们只需要调整一下右列元素的外边距啊、定位啊什么的就可以完成

方法四:Flex布局

.container {
	display: flex;
	height: 300px;
}
.left {
    /* 定宽 */
    width: 200px;
    /*height: 100% 因为未脱离文档流,所以不用设置高度也行*/
    background-color: chartreuse;
}
.right {
    /* flex 属性是 flex-grow、flex-shrink 和 flex-basis 属性的简写属性。 */
    flex: 1;
    /*height: 100% 因为未脱离文档流,所以不用设置高度也行*/
    background-color:coral;
}

方法五:able布局

/* table布局:(display:table-cell后)子级容器默认是自动平分宽度沾满父级容器; */
.container {
    display: table;
    height: 300px;
    width: 100%;
}
.left {
    display: table-cell;
    /* 定宽 */
    width: 200px;
    /*height: 100% 因为未脱离文档流,所以不用设置高度也行*/
    background-color: chartreuse;
}
.right {
    /*height: 100% 因为未脱离文档流,所以不用设置高度也行*/
    display: table-cell;
    background-color: coral;
}

table布局只需要给父元素添加display:table属性,以及给两个子元素添加 display: table-cell属性即可

CSS两栏布局(左列不定宽,右列自适应宽)

  • 方法一:flex
  • 方法二:浮动+BFC

因为操作方式如上面演示一样,只是去掉左列宽度属性而已,因此就不一一赘述列举了。
操作方式:去掉左列宽度,左列的宽度根据内容进行自适应,从而实现“左列不定宽,右列自适应宽”的效果。

为什么只有这两种方式可以实现?

因为其他方式都是脱离文档流的方式(如:浮动、定位),内部元素无法撑开脱离文档流的盒子。

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

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

相关文章

一、Qt简介

1. 什么是Qt&#xff1f; Qt是一个基于C的图形用户界面&#xff08;GUI&#xff09;开发框架&#xff0c;但图形用户界面并不是Qt的全部&#xff0c;因为Qt还包含了很多非图形化的开发功能&#xff1a;多线程、数据库、图像图形处理、音视频处理、网络通信、文件IO等。 一方面…

【智慧工地源码】基于AI视觉技术赋能智慧工地

伴随着技术的不断发展&#xff0c;信息化手段、移动技术、智能穿戴及工具在工程施工阶段的应用不断提升&#xff0c;智慧工地概念应运而生&#xff0c;庞大的建设规模催生着智慧工地的探索和研发。 建筑施工具有周期长、环境复杂、工序繁杂、人员流动性大等特点&#xff0c;所以…

10个基于.Net开发的Windows开源软件项目

分享10个适合程序员的神器&#xff0c;都是基于.Net开发的&#xff0c;可以用来学习&#xff0c;日常工作也可以使用。&#xff08;点击标题&#xff0c;查看详情&#xff09; 1、基于.NET的强大文件格式开源转换工具 一个基于.NET平台的开源文件格式转换工具&#xff0c;可以…

仿写el-upload组件,彻底搞懂文件上传

用了那么久的Upload组件&#xff0c;你知道是怎么实现的么&#xff0c;今天就来仿写一个饿了么el-upload vue组件&#xff0c;彻底搞懂前端的文件上传相关知识&#xff01; 要实现的props 参数说明action必选参数&#xff0c;上传的地址headers设置上传的请求头部multiple是否…

Linux内存管理(2):memblock

一、memblock分配器初始化 在内核初始化过程中也需要分配内存,使用的页帧分配器叫memblock(早期的内核版本使用BootMem,新版本内核已不再用)。 memblock是系统启动过程中的一个中间阶段的内存管理, 负责在系统上电到内核内存管理模型初始化之前这段时间的物理内存分配、预留…

mac 升级node到指定版本

node版本14.15.1升级到最新稳定版18.18.2 mac系统 先查看一下自己的node版本 node -v开始升级 第一步 清除node的缓存 sudo npm cache clean -f第二步 安装n模块【管理模块 n是管理 nodejs版本】 sudo npm install -g n第三步升级node sudo n stable // 把当前系统的 Node…

C++初阶(五)类和对象

文章目录 一、C两大类型二、类的6个默认成员函数三、构造函数1、概念2、特性1、构造函数自动调用特性演示2、无参有参调用两种情况演示3、函数重载演示4、默认构造函数组成及演示5、内置类型成员不初始化的补丁演示 3、析构函数1、概念2、特性1、代码演示2、析构两种情况 4、构…

Android MQTT连接阿里云使用Json解析数据

Android Studio 连接阿里云订阅主题然后使用JSON解析数据非常好用 导入MQTT的JAR包1、在项目中添加依赖然后使用Studio 去下载库2、直接下载JAR包&#xff0c;然后作为库进行导入 环境验证&#xff1a;给程序进行联网权限XML布局文件效果如下&#xff1a; MainActitive.java 主…

PTrade财务数据获取函数的问题

前文介绍了PTrade的get_fundamentals函数&#xff0c;可以用于获取股票的财务数据。但在实际应用中&#xff0c;会遇到如下的问题。 前文我们通过将回测时间设置为2023-05-05进行回测调用get_fundamentals&#xff0c;得到如下查询结果&#xff1a; secu_codepubl_dateend_da…

ThingsBoard 实现设备认领

1. 设备认领的使用场景 设备认领在一种场景下使用,当租户已经生产好设备时,租户把设备卖给了客户, 客户通过认领的方式将设备划分到自己下面,客户变成设备的拥有者。 2. 设备认领的方式 设备认领的方式存在两种: 设备生成密钥 和 服务端生成密钥 2.1. 设备生成密钥 设备…

Zookeeper+Hadoop+Spark+Flink+Kafka+Hbase+Hive 完全分布式高可用集群搭建(保姆级超详细含图文)

说明: 本篇将详细介绍用二进制安装包部署hadoop等组件&#xff0c;注意事项&#xff0c;各组件的使用&#xff0c;常用的一些命令&#xff0c;以及在部署中遇到的问题解决思路等等&#xff0c;都将详细介绍。 1.环境说明 1.1 ip规划 iphostname192.168.1.11node1192.168.1.…

来看看如何使用Proton_实现网络聚合_利用安全的网络协议实现网络通讯---工具箱工作笔记001

首先要去注册proton.com 注册的时候首先去注册一个proton的邮箱@protonmail.com这个邮箱 注册以后进入,然后选择中文 然后再去下载这个CDN加速网址 去下载了以后 选择左侧免费的就可以了

升级版多功能版在线WEB工具箱PHP源码/在线站长工具箱源码/php多功能引流工具箱源码

源码简介&#xff1a; 升级版多功能版在线WEB工具箱PHP源码&#xff0c;这是最新的在线站长工具箱源码&#xff0c;它是一款PHP多功能引流工具箱源码。作为一个多功能的Web工具PHP脚本&#xff0c;包含45种工具&#xff0c;适用于平常任务和开发人员&#xff0c;或者用来推广引…

公有云厂商---服务对照表

各厂商特点&#xff1a; Compute: Network: Storage: Database: Migration Tool: Identify: WAF: 来源&#xff1a;https://comparecloud.in/

p-limit源码解读--30行代码,高大上解决Promise的多并发问题

背景 提起控制并发&#xff0c;大家应该不陌生&#xff0c;我们可以先来看看多并发&#xff0c;再去聊聊为什么要去控制它 多并发一般是指多个异步操作同时进行&#xff0c;而运行的环境中资源是有限的&#xff0c;短时间内过多的并发&#xff0c;会对所运行的环境造成很大的…

《算法通关村第二关——指定区间反转问题解析》

《算法通关村第二关——指定区间反转问题解析》 题目描述 给你单链表的头指针head和两个整数left和right&#xff0c;其中left < right 。 请你反转从位置left到位置right的链表节点&#xff0c;返回反转后的链表。 示例1&#xff1a; 输入&#xff1a; head [1,2,3,4,5…

打工人必备技能——找资源~

让我看看还有哪个打工人不会找资源&#xff0c;不过没关系&#xff0c;相信看完我这篇内容&#xff0c;不会的也学会了&#xff01; 一、XDown 全网1000平台视频解析下载器&#xff0c;在线视频下载工具&#xff0c;几乎能下全网所有平台的视频&#xff0c;而且下完还能自由转…

HammerDB的安装和使用(超详细)

目录 ​编辑 一、HammerDB的介绍 二、HammerDB的安装 1、下载hammerdb安装包 2、权限配置以及安装 3、查看安装目录 三、安装前的配置 1、启动监听 2、启动数据库 3、创建表空间 1.修改临时表空间 2…

STM32F4之系统滴答定时器

一、系统滴答定时器概述 传统定时器&#xff1a;如手机闹钟&#xff0c;闹钟等就是一个简单地计数器。 定时器概念&#xff1a;由时钟源计数器计数值组成的计数单元。 系统嘀嗒定时器首先是存在于内核里&#xff0c;系统嘀嗒时钟假如用的是同一个内核那么里面相关的配置&…

移动端web调试工具vConsole使用详解

目录 简介&#xff1a; 使用 方法一&#xff1a;使用 npm&#xff08;推荐&#xff09; 方法二&#xff1a;使用 CDN 直接插入到 HTML 开发环境显示生成环境删除 vConsole是框架无关的&#xff0c;可以在 Vue、React 或其他任何框架中使用&#xff0c;类似于微信小程序体验…