CSS:两列布局

两列布局是指一列宽度固定,另一列自适应。效果如下:
在这里插入图片描述
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;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024年2月CCF-全国精英算法大赛题目

第一次参加这种比赛&#xff0c;虽然是c类赛事&#xff0c;但是是ccf主办的&#xff0c;难度还是有点的&#xff0c;主要是前面签到题主要是思想&#xff0c;后面的题目难度太高&#xff0c;身为力扣只刷了一百多道题目的我解决不了&#xff0c;这几道我只做了B,C题,E题超时了&…

HR看了都想点开的简历:吸睛模板+撰写技巧

工作致富的第一步&#xff1a;写一份好的简历。一个独特、简单、清晰的个人简历模板可以更好地吸引雇主的注意和兴趣&#xff0c;并帮助你在许多求职者中脱颖而出。如何制作一份令人印象深刻的简历&#xff1f;巧妙地使用个人简历模板是一个不错的选择。在本文中&#xff0c;我…

Spring Boot整合新版Spring Security:Lambda表达式配置优雅安全

文章目录 1. 引言2. 项目依赖配置3. 使用Lambda表达式配置Spring Security4. 自定义身份验证逻辑5. 认证与授权注解5.1 Secured注解5.2 PreAuthorize和PostAuthorize注解 6. 总结 &#x1f389;Spring Boot整合新版Spring Security&#xff1a;Lambda表达式配置优雅安全 ☆* o(…

STM32F1 - 点灯-寄存器模式

点灯 实验概述&#xff1a;Step1> 建立工程Step2> 宏定义 - 寄存器地址 实验概述&#xff1a; 用配置寄存器的方式&#xff0c;开关一个LED灯&#xff0c; 只用标准库中提供的启动文件&#xff0c; Step1> 建立工程 出现错误&#xff1a;导入文件类型错误 keil5编译中…

QT Linux下无法使用CTRL+ALT+P快捷键,不生效

文章目录 一、背景二、排查&#xff08;1&#xff09;检查创建&#xff0c;发现没问题。&#xff08;2&#xff09;查看 shortcutMap 是否注册&#xff08;3&#xff09;排查xcb有没有获取到该事件&#xff08;4&#xff09;排查是否是系统的问题&#xff08;5&#xff09;www.…

10英寸安卓车载平板电脑丨ONERugged车载工业平板:解决农业工作效率

农业是人类社会的基石之一&#xff0c;而农业工作效率的提升一直是农民和农业专业人士关注的重要议题。随着技术的不断进步&#xff0c;车载工业平板成为了解决农业工作效率的创新解决方案。本文将探讨车载工业平板如何为农业带来巨大的改变&#xff0c;提高农民的工作效率和农…

Fink CDC数据同步(六)数据入湖Hudi

数据入湖Hudi Apache Hudi(简称&#xff1a;Hudi)使得您能在hadoop兼容的存储之上存储大量数据&#xff0c;同时它还提供两种原语&#xff0c;使得除了经典的批处理之外&#xff0c;还可以在数据湖上进行流处理。这两种原语分别是&#xff1a; Update/Delete记录&#xff1a;H…

【Java 数据结构】泛型进阶

泛型 1 什么是泛型2 引出泛型2.1 语法 3 泛型类的使用3.1 语法3.2 示例3.3 类型推导(Type Inference) 泛型是如何编译的擦除机制裸类型4 泛型的上界4.1 语法4.2 示例4.3 复杂示例 5 泛型方法5.1 定义语法5.2 示例5.3 使用示例-可以类型推导5.4 使用示例-不使用类型推导 6 通配符…

编译原理与技术(三)——语法分析(五)自底向上-LR分析

一、自顶向下的LL(1)与自底向上的LR &#xff08;一&#xff09;LL(1)非递归预测分析器及分析表 &#xff08;二&#xff09;LR分析器及分析表 二、LR分析 举个例子。 从上面不难看出&#xff0c;LR分析也是由分析表驱动的。那么关键在于构造LR分析表。

眼动追踪系统体验实验(脑与认知期末考核)

实验名称&#xff1a;眼动追踪系统体验实验 实验目的&#xff1a; 本实验旨在通过体验脑与认知眼动追踪系统&#xff0c;了解该技术在心理学、认知科学等领域的应用&#xff0c;理解它是怎样工作的&#xff0c;探究眼动追踪技术如何揭示人类认知过程的奥秘。 实验环境&#…

1、将 ChatGPT 集成到数据科学工作流程中:提示和最佳实践

将 ChatGPT 集成到数据科学工作流程中:提示和最佳实践 希望将 ChatGPT 集成到您的数据科学工作流程中吗?这是一个利用 ChatGPT 进行数据科学的提示的实践。 ChatGPT、其继任者 GPT-4 及其开源替代品非常成功。开发人员和数据科学家都希望提高工作效率,并使用 ChatGPT 来简…

docker之程序镜像的制作

目录 一、每种资源的预安装&#xff08;基础&#xff09; 安装 nginx安装 redis 二、dockerfile文件制作&#xff08;基础&#xff09; 打包 redis 镜像 创建镜像制作空间制作dockerfile 打包 nginx 镜像 三、创建组合镜像&#xff08;方式一&#xff09; 生成centos容器并…

环境配置:Udacity的Self-Driving项目安装运行

前言 Udacity的自动驾驶工程师纳米学位项目&#xff08;Self-Driving Car Engineer Nanodegree Program&#xff09;是一项面向学习者的前沿技术项目&#xff0c;旨在提供全面的自动驾驶工程师培训。该项目由Udacity与自动驾驶领域的领先公司和专业人士合作开发&#xff0c;涵…

C++ STL精通之旅:向量、集合与映射等容器详解

目录 常用容器 顺序容器 向量vector 构造 尾接 & 尾删 中括号运算符 获取长度 清空 判空 改变长度 提前分配好空间 代码演示 运行结果 关联容器 集合set 构造 遍历 其他 代码演示 运行结果​编辑 映射map 常用方法 构造 遍历 其他 代码演示1​编…

安卓9宫格密码键盘

自定义组件 package com.zx.mocab.views;import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Path; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent…

adb push 将电脑中的文件传输到安卓开发板

1. adb remount 重新挂载设备的文件系统&#xff0c;以便可以对设备进行读写操作&#xff0c;通常情况下&#xff0c;安卓开发板在连接到计算机后&#xff0c;设备的文件系统会被挂载为只读文件系统&#xff0c;重新挂载后变成可读可写权限 C:\Users\Administrator>adb re…

工业笔记本丨行业三防笔记本丨亿道加固笔记本定制丨极端温度优势

工业笔记本是专为在恶劣环境条件下工作而设计的高度耐用的计算机设备。与传统消费者级笔记本电脑相比&#xff0c;工业笔记本在极端温度下展现出了许多优势。本文将探讨工业笔记本在极端温度环境中的表现&#xff0c;并介绍其优势。 耐高温性能: 工业笔记本具有更高的耐高温性…

2月6日作业

1.现有无序序列数组为23,24,12,5,33,5347&#xff0c;请使用以下排序实现编程 函数1:请使用冒泡排序实现升序排序 函数2:请使用简单选择排序实现升序排序 函数3:请使用快速排序实现升序排序 函数4:请使用插入排序实现升序排序 #include<stdio.h> #include<string.h&…

2024-01-06-AI 大模型全栈工程师 - 机器学习基础

摘要 2024-01-06 阴 杭州 晴 本节简介: a. 数学模型&算法名词相关概念; b. 学会数学建模相关知识&#xff1b; c. 学会自我思考&#xff0c;提升认知&#xff0c;不要只会模仿&#xff1b; 课程内容 1. Fine-Tuning 有什么作用&#xff1f; a. 什么是模型训练&#xff…

计算机毕业设计 基于SpringBoot的线上教育培训办公系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…