CSS:两列布局

news2025/1/12 23:05:07

两列布局是指一列宽度固定,另一列自适应。效果如下:
在这里插入图片描述
HTML:

<div class="container clearfix">
  <div class="left"></div>
  <div class="right"></div>
</div>

公共 CSS:

.container {
  width: 400px;
  height: 200px;
}

.left {
  width: 100px;
  height: 200px;
  background-color: orange;
}

.right {
  height: 200px;
  background-color: #d0e4fe;
}

一. float 浮动

方法一:float + calc()

.left {
  float: left;
}

.right {
 float: left;
 width: calc(100% - 100px);
}

/* 清除浮动 */
.clearfix::after {
  content: '';
  display: block;
  height: 0;
  clear: both;
  visibility: hidden;
}

注意事项:

如果父元素的高度没有设置,默认情况下,父元素的高度会被子元素撑高。如果子元素设置浮动,脱离文档流,就无法撑开父元素的高度,导致父元素高度塌陷,即父元素的高度变为 0,导致页面布局混乱。

示例如下:

<style>
  .container {
	width: 300px;
	border: 1px red solid;
  }
  .box1 {
	width: 100px;
	height: 100px;
	background-color: orange;
  }
  .box2 {
  	width: 100px;
	height: 150px;
	background-color: #d0e4fe;
  }
</style>

<div class="container">
  <div class="box1"></div>
</div>
 <div class="box2"></div>

在这里插入图片描述

此时,父元素 container 的高度被子元素 box1 的高度撑开。

box1 开启浮动后,效果如下:

.box1 {
  float: left;
}

在这里插入图片描述

此时 box1 脱离文档流,父元素的高度塌陷为 0,导致标准流中的 box2 位置上移,与 box1 重叠。因此,开启浮动造成的父元素高度塌陷会影响浮动元素之后元素的布局。

解决方案:

  1. 给父元素设置高度,可以避免高度塌陷,但也无法自适应子元素的高度。

  2. 将父元素的 overflow 属性设置为非 visible 的值,如 hidden 来开启 BFC。

    BFC(Block Formatting Context) 是一个 CSS 概念。BFC 是指浏览器中创建的一个独立的渲染区域,这个区域拥有自己的渲染规则,它决定了其子元素如何定位,以及与其他元素的相互关系和作用。简单来说,BFC 就是一个完全独立的空间(布局环境),让空间里的子元素不会影响到外面的布局

  3. 在高度塌陷的父元素最后增加一个空的 div,给其设置 clear: both; 清除浮动。

<div class="container">
  <div class="box1"></div>
  <div style="clear: both;"></div>
</div>
  1. 给父元素添加 ::after 伪元素,再向元素添加一个空白的块元素,然后对其清除浮动,这样做和添加一个空的 div 的原理一样,可以达到相同的效果,而且不会在页面中添加多余的 div。
.clearfix {
  content: "";
  display: block;
  clear: both;
}

方法二: float + margin-left

.left {
  float: left;
}

.right {
  margin-left: 100px;
}

二. position 定位

方法三: absolute + margin-left

.left {
  position: absolute;	/*开启定位脱离文档流*/
}

.right {
  margin-left: 100px;
}

三. flex 布局

方法四:flex

.container {
  display: flex;
}

.right {
  flex: 1;	/* flex-grow: 1; */
}

flex 是 flex-grow,flex-shrink,flex-basis 三个属性的简写形式。flex: 1 表示将三个属性值设置为 1 1 auto。

  • flex-grow:定义了 flex 子项如何分配多余的空间。默认值为0。值为 1 意味着该子项会等分多余的空间。
  • flex-shrink:定义了当空间不足时,flex 子项如何缩小。默认值为 1 ,意味着该子项会等比例缩小。
  • flex-basis:定义了 flex 子项的默认大小。默认值为 auto,意味着默认大小为内容大小。

.container {
  display: flex;
}
.left {
  flex: 1;
}
.right {
  flex: 4;
}

这种用法表示左列占容器宽度的 1/5,右列占 4/5,适用于左列不需要固定宽度值的情况。

四. grid 布局

方法五:grid

.container {
  dispaly: grid;
  grid-template-columns: 100px 1fr;
}

grid-template-columns: 100px 1fr; 表示左列宽度 100px,右列占据剩余空间。如果想要左列宽度根据内容大小自动调节,可设置为 grid-template-columns: auto 1fr;

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

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

相关文章

openstack(T版)公有云--Dashboard服务

公有云上OpenStack Train最小化安装_openstack最小化部署-CSDN博客 我的opensatck(T)是参考上面链接去部署完成的&#xff0c;在部署完Dashboard服务后&#xff0c;将要用浏览器访问的时候出现了404 500 Internal Server Error 等各种各样的问题&#xff0c;以下是我排查问题…

Leetcode—57. 插入区间【中等】

2024每日刷题&#xff08;113&#xff09; Leetcode—57. 插入区间 实现代码 class Solution { public:vector<vector<int>> insert(vector<vector<int>>& intervals, vector<int>& newInterval) {vector<vector<int>> an…

thinkphp6入门(17)-- 网站开发中session、cache、cookie的区别

Session&#xff08;会话&#xff09;: 定义&#xff1a; Session是一种用于在服务器端存储用户信息的机制&#xff0c;以跟踪用户的状态。 数据存储位置&#xff1a; 存储在服务器端&#xff0c;可以存在于内存、数据库或文件系统中。 生命周期&#xff1a; 存在于用户访问应…

R语言学习case9:ggplot基础画图(Scatter Metrics 矩阵散点图)

step1: 导入ggplot2库文件 library(ggplot2)step2&#xff1a;带入自带的iris数据集 iris <- datasets::irisstep3&#xff1a;查看数据信息 dim(iris)维度为 [150,5] head(iris)查看数据前6行的信息 step4&#xff1a;利用ggplot工具包绘图 开发者们在ggplot2的基础…

机器学习聚类算法

聚类算法是一种无监督学习方法&#xff0c;用于将数据集中的样本划分为多个簇&#xff0c;使得同一簇内的样本相似度较高&#xff0c;而不同簇之间的样本相似度较低。在数据分析中&#xff0c;聚类算法可以帮助我们发现数据的内在结构和规律&#xff0c;从而为进一步的数据分析…

工业以太网交换机引领现代工厂自动化新潮流

随着科技的飞速发展&#xff0c;现代工厂正迎来一场前所未有的自动化变革&#xff0c;而工业以太网交换机的崭新角色正是这场变革的关键组成部分。本文将深入探讨工业以太网交换机与现代工厂自动化的紧密集成&#xff0c;探讨这一集成如何推动工业生产的智能化、效率提升以及未…

【自定义序列化器】⭐️通过继承JsonSerializer和实现WebMvcConfigurer类完成自定义序列化

目录 前言 解决方案 具体实现 一、自定义序列化器 二、两种方式指定作用域 1、注解 JsonSerialize() 2、实现自定义全局配置 WebMvcConfigurer 三、拓展 WebMvcConfigurer接口 章末 前言 小伙伴们大家好&#xff0c;上次做了自定义对象属性拷贝&#x…

【LangChain-04】利用权重和偏差跟踪和检查LangChain代理的提示

利用权重和偏差跟踪和检查LangChain代理的提示 一、说明 考虑到&#xff08;生成&#xff09;人工智能空间&#xff0c;&#xff08;自主&#xff09;代理现在无处不在&#xff01;除了更强大且幸运的是开放的大型语言模型&#xff08;LLM&#xff09;之外&#xff0c;LangCh…

Android中设置Toast.setGravity()了后没有效果

当设置 toast.setGravity()后&#xff0c;弹窗依旧从原来的位置弹出&#xff0c;不按设置方向弹出 类似以下代码&#xff1a; var toast Toast.makeText(this, R.string.ture_toast, Toast.LENGTH_SHORT)toast.setGravity(Gravity.TOP, 0, 0)//设置toast的弹出方向为屏幕顶部…

linux centos安装neofetch

简介 neofetch是一个命令行工具&#xff0c;可以用来显示系统的基本信息和硬件配置。它支持多种操作系统&#xff0c;包括Linux、macOS和Windows等。 安装 增加yum源 curl -o /etc/yum.repos.d/konimex-neofetch-epel-7.repo https://copr.fedorainfracloud.org/coprs/konime…

【学网攻】 第(22)节 -- DHCP中继配置

系列文章目录 目录 系列文章目录 文章目录 前言 一、DHCP中继是什么&#xff1f; 二、实验 1.引入 实验目的理解DHCP中继的功能&#xff1b; 实验背景 实验步骤新建Packet Tracer拓扑图 实验设备PC 2台&#xff1b;Server-PT(Web服务器) &#xff0c;Switch_2950-24 …

「深度学习」门控循环单元GRU

一、梯度消失问题 梯度消失&#xff1a; 基础的 RNN 模型不善于处理长期依赖关系&#xff0c;有很多局部影响&#xff0c;很难调整自己前面的计算。y^{<i>} 仅仅受自己附近的值影响。 解决方法&#xff1a;GRU 或 LSTM 梯度爆炸&#xff1a; 反向传播时&#xff0c;随着…

C++多线程:this_thread 命名空间

std::this_thread 是 C 标准库中提供的一个命名空间&#xff0c;它包含了与当前线程相关的功能。这个命名空间提供了许多与线程操作相关的工具&#xff0c;使得在多线程环境中更容易进行编程。 源码类似于如下&#xff1a; namespace std{namespace this_thread{//...........…

Sentinel(理论版)

Sentinel 1.什么是Sentinel Sentinel 是一个开源的流量控制组件&#xff0c;它主要用于在分布式系统中实现稳定性与可靠性&#xff0c;如流量控制、熔断降级、系统负载保护等功能。简单来说&#xff0c;Sentinel 就像是一个交通警察&#xff0c;它可以根据系统的实时流量&…

第8节、双电机多段直线运动【51单片机+L298N步进电机系列教程】

↑↑↑点击上方【目录】&#xff0c;查看本系列全部文章 摘要&#xff1a;前面章节主要介绍了bresenham直线插值运动&#xff0c;本节内容介绍让两个电机完成连续的直线运动,目标是画一个正五角星 一、五角星图介绍 五角星总共10条直线&#xff0c;10个顶点。设定左下角为原点…

【Jenkins】pipeline基本使用

目录 一、pipeline 二、创建pipeline项目 1、安装pipeline插件 2、创建pipeline项目 三、pipeline语法 1、pipeline组成 2、agent&#xff1a;指定流水线的执行位置&#xff0c;流水线中每个阶段都必须在某个地方执行 3、stage&#xff1a;阶段&#xff0c;代表流水线的…

牛客——牛可乐的翻转游戏(状压,dfs)

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目描述 牛可乐发明了一种新型的翻转游戏&#xff01; 在一个有 nnn 行 mmm 列的棋盘上&#xff0c;每个格子摆放有一枚棋子&#xff0c;每一枚棋子的颜色要么是黑色&#xff0c;要么是白色。…

Simulink|光伏阵列模拟多类故障(开路/短路/阴影遮挡/老化)

目录 主要内容 模型研究 1.正常模型 2.断路故障 3.短路故障 4.阴影遮挡 5.老化模型 结果一览 1.U-I曲线 2.P-V曲线 下载链接 主要内容 该模型为光伏阵列模拟故障情况simulink模型&#xff0c;程序实现了多种故障方式下的光伏阵列输出功率-电压-电流关系特…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Radio组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Radio组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Radio组件 单选框&#xff0c;提供相应的用户交互选择项。 子组件 无。 接口 …

【前端素材】bootstrap4实现移动端电商APP页面 MobileShop(附源码)

一、需求分析 移动端电商网页是指为移动设备&#xff08;如智能手机和平板电脑&#xff09;优化设计的电子商务网页。它是在线商店的移动版本&#xff0c;旨在提供方便的购物体验和无缝的移动端操作。 移动端电商网页通常具有以下功能&#xff1a; 商品展示&#xff1a;移动端…