HTML+CSS - 网页布局之多列布局定位

news2024/9/21 0:39:44

1. 多列布局

CSS中多列布局处理文本内容,特别适合对于长段落或者大量文本进行自动分栏显示

类似于grid分布,但相较之下更加简洁明了

基本语法

<div class="container">
  <p>
    这是一些示例文本,当我们使用 column-count 属性时,文本会被自动分成多列显示。无论是新闻文章、书籍段落,还是其他长段落内容,这种布局方式都非常实用。
  </p>
</div>

以下CSS代码都是通过上述HTML文档举例

 

1.1 定义文本分栏 

• column-count

指定文本分为几列

.container
{
    column-count: 3; /*将文本分为3列*/
}

• column-width

指定每一列的宽度,浏览器根据可用空间和指定宽度自动调整列数

.container
{
    column-gap: 20px; /*每一列之间的间隔*/
}

• column-gap

设置列之间的间距,如下代码所示,每一列之间的间距为20px

.container
{
    column-count:3;
    column-gap:20px;
}

• column-rule

为列之间添加分割线,创建方式与border相同,涵盖粗细,线段形式,颜色

这条分割线本身并不占用宽度,它置于用 column-gap 创建的间隙内。如果需要更多空间,你需要增加 column-gap 的值。

.container
{
    column-rule:4px dotted rgb(79,185,227);
}

1.2 实例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
		body{
			width:90%;
			max-width:900px;
			margin:2em auto;
			font:.9em/1.2 Arial, Helvetica, sans-serif;
		}
		.container{
			column-count:2;
			column-width:200px;
			column-gap:20px;
			column-rule:4px dotted rgb(79,185,227); /*这条分割线本身并不占用宽度。
			它置于用 column-gap 创建的间隙内。如果需要更多空间,你需要增加 column-gap 的值*/
		}
		.card{
			break-inside:avoid;
			background-color: #808080;
			border: 5px solid rgb(79,185,227);
			padding :10px
		}
		</style>
	</head>
	<body>
		<h1>Simple multicol example</h1>
		<div class='container'>
			<div class='card'>
			<p>
				Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla luctus aliquam dolor, eu lacinia lorem placerat vulputate.
				Duis felis orci, pulvinar id metus ut, rutrum luctus orci. Cras porttitor imperdiet nunc, at ultricies tellus
				laoreet sit amet. Sed auctor cursus massa at porta. Integer ligula ipsum, tristique sit amet orci vel, viverra
				egestas ligula. Curabitur vehicula tellus neque, ac ornare ex malesuada et. In vitae convallis lacus. Aliquam
				erat volutpat. Suspendisse ac imperdiet turpis. Aenean finibus sollicitudin eros pharetra congue. Duis ornare
				egestas augue ut luctus. Proin blandit quam nec lacus varius commodo et a urna. Ut id ornare felis, eget fermentum
				sapien.
			</p>
			</div>
			
			<div class='card'>
			<p>
				Nam vulputate diam nec tempor bibendum. Donec luctus augue eget malesuada ultrices. Phasellus turpis est, posuere
				sit amet dapibus ut, facilisis sed est. Nam id risus quis ante semper consectetur eget aliquam lorem. Vivamus
				tristique elit dolor, sed pretium metus suscipit vel. Mauris ultricies lectus sed lobortis finibus. Vivamus eu
				urna eget velit cursus viverra quis vestibulum sem. Aliquam tincidunt eget purus in interdum. Cum sociis natoque
				penatibus et magnis dis parturient montes, nascetur ridiculus mus.
			</p>
			</div>
		</div>
	</body>
</html>

2. 定位

2.1 静态定位

静态定位是每个元素获取的默认值——它只是意味着“将元素放入它在文档布局流中的正常位置——这里没有什么特别的。

.positioned {
  position: static;
  background: yellow;
}

2.2 相对定位

相对定位定义元素的位置根据其默认位置相对得来

		.positioned{
			position:relative; /*根据初始位置进行调整*/
			background:yellow;
			top:30px;

使用top,bottom,left,right进行定位,对于相对位置而言,具体位置与所设定元素为反方向,像一双无形的手推了过去。

这些属性的值可以采用逻辑上期望的任何单位——px、mm、rem、% 等。

2.3 绝对定位

它们指定元素应距离每个包含元素的边的距离,而不是指定元素应该移入的方向。

绝对定位的元素不再存在于正常文档布局流中。相反,它坐在它自己的层独立于一切。

.positioned {
  position: absolute;
  top:10px;
  left:10px;
  background: yellow;
}

2.4 元素重叠处理

当元素开始重叠,我们需要考虑各个元素的层级结构。

让我们想象整个网页是三维空间,网页内容代表X,Y轴,Z轴表示高度

z-index参数应运而生

值影响定位元素位于该轴上的位置;正值将它们移动到堆栈上方,负值将它们向下移动到堆栈中。默认情况下,定位的元素都具有 z-index 为 auto,实际上为 0。

z-index: 1; /*元素向上*/

2.5 固定定位

绝对定位将元素固定在相对于其位置最近的祖先。(如果没有,则为初始包含它的块)而固定定位固定元素则是相对于浏览器视口本身。使用鼠标滚动,该定位将会一直保持

		h1{
			position:fixed;
			top:0;
			width:500px;
			margin:0 auto;
			background:white;
			padding:10px;
		}

为了使得首行文本可以看见,定义top-margin即可

2.6 sticky定位

类似于相对位置与固定定位的混合体

它允许被定位的元素表现得像相对定位一样,直到它滚动到某个阈值点(例如,从视口顶部起 10 像素)为止,此后它就变得固定了。

		.positioned{
			position:sticky;
			top:1px;
			left:30px;
		}

top与left表示滑动界面时的固定位置

3. 参考资料

弹性盒子 - 学习 Web 开发 | MDN

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

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

相关文章

SpringBoot Kafka发送消息与接收消息实例

前言 Kafka的基本工作原理 我们将消息的发布&#xff08;publish&#xff09;称作 producer(生产者)&#xff0c;将消息的订阅&#xff08;subscribe&#xff09;表述为 consumer&#xff08;消费者&#xff09;&#xff0c;将中间的存储阵列称作 broker(代理)&#xff0c;这…

酷炫的航模直升机技术详解

1. 分类与级别&#xff08;400级至90级&#xff09; 航模直升机以其独特的飞行魅力和高难度的操作技巧&#xff0c;吸引了众多飞行爱好者。根据模型的尺寸、重量、动力系统及飞行性能&#xff0c;航模直升机大致可分为多个级别&#xff0c;从入门级的400级到专业级的90级及以上…

简单接口自动化框架实现(Python+requests+pytest)

1、接口自动化流程 1.需求分析2.挑选需要做自动化测试的功能3.设计测试用例4.搭建自动化测试环境[可选]5.设计自动化测试项目的架构[可选]6.编写代码7.执行测试用例8.生成测试报告并分析结果 2、框架结构 --api -->封装请求 --scripts -->编写测试脚本…

15. Springboot集成Redis

目录 1、前言 2、为什么选择Spring Boot集成Redis&#xff1f; 3、快速上手 3.1、引入依赖 3.2、 配置连接信息 3.3、自定义配置类 4、RedisTemplate的使用 4.1、String类型操作 4.2、 Hash类型操作 4.3、List类型操作 4.4、Set类型操作 4.5、SortedSet类型操作 4…

有了数据中台,是否需要升级到数据飞轮?怎么做才能升级到数据飞轮?

在数字化转型的时代&#xff0c;企业纷纷建设了“数据中台”&#xff0c;把各种业务数据整合在一起&#xff0c;仿佛是将所有材料都整理进了厨房的储物柜。 但是问题是&#xff1a;光有储物柜&#xff0c;能做出好吃的菜吗&#xff1f;答案显然是否定的。想要真正利用这些数据…

华为HarmonyOS地图服务 -- 如何实现地图呈现?-- HarmonyOS自学8

如何使用地图组件MapComponent和MapComponentController呈现地图&#xff0c;效果如下图所示。 MapComponent是地图组件&#xff0c;用于在您的页面中放置地图。MapComponentController是地图组件的主要功能入口类&#xff0c;用来操作地图&#xff0c;与地图有关的所有方法从此…

项目实现:云备份③(配置文件加载模块、数据管理模块的实现)

云备份 前言配置文件加载模块配置信息的设计单例文件配置类设计 数据管理模块数据信息类设计数据管理类实现数据持久化存储初始化加载实现 前言 书接上回&#xff1a;云备份&#xff08;实用工具类&#xff09;实现后&#xff0c;接下来会逐步实现不同模块的功能。会频繁用到工…

更主动的对话规划者:PPDPP论文解读

摘要 主动对话在大语言模型&#xff08;LLMs&#xff09;时代中是一个实际且具有挑战性的对话问题&#xff0c;其中对话策略规划是提升LLMs主动性的重要关键。现有的大多数研究通过各种提示方案或使用口头AI反馈迭代增强处理特定案例的能力&#xff0c;以实现LLMs的对话策略规…

元宇宙+教育:打造个性化、互动化学习生态系统!

近两年来&#xff0c;元宇宙风在全球迅速掀起了一股新浪潮。“元宇宙”成为各个行业的热门发展方向&#xff0c;各个行业正试图通过元宇宙寻求新的发展突破口&#xff0c;教育行业也不例外。 教育培训元宇宙作为一种前沿的教育模式&#xff0c;深度融合了虚拟现实、增强现实及…

SAP HCM HR_MAINTAIN_MASTERDATA自带解锁功能

导读 锁功能&#xff1a;在SAP HCM模块有针对人的加锁功能&#xff0c;今天遇到的一个问题是&#xff0c;人员无法被锁住&#xff0c;给我第一反应就是代码没有加锁&#xff0c;代码有问题&#xff0c;但是去看代码系统确实已经加锁&#xff0c;但是系统还是提示这个&#xff…

BPF 调度器 sched_ext 实现机制、调度流程及样例

本文地址&#xff1a;https://www.ebpf.top/post/bpf_sched_ext_dive_into 在文章 Linus 强势拍板合入: BPF 赋能调度器终成正果中&#xff0c;我们回顾了 BPF 在调度器在合入社区过程中的历程&#xff0c;补丁 V7 已经在为合并到 6.11 做好了准备&#xff0c;后续代码仓库也变…

4. 认识 LoRA:从线性层到注意力机制

如果你有使用过 AI 生图&#xff0c;那你一定对 LoRA 有印象&#xff0c;下图来自Civitai LoRA&#xff0c;上面有很多可供下载的LoRA模型。 你可能也曾疑惑于为什么只导入 LoRA 模型不能生图&#xff0c;读下去&#xff0c;你会解决它。 文章目录 为什么需要 LoRA&#xff1f;…

预训练数据指南:衡量数据年龄、领域覆盖率、质量和毒性的影响

前言 原论文&#xff1a;A Pretrainer’s Guide to Training Data: Measuring the Effects of Data Age, Domain Coverage, Quality, & Toxicity 摘要 预训练是开发高性能语言模型&#xff08;LM&#xff09;的初步和基本步骤。尽管如此&#xff0c;预训练数据的设计却严…

STM32 HAL freertos零基础(十一)中断管理

1、简介 在FreeRTOS中,中断管理是一个重要的方面,尤其是在嵌入式系统中。正确地处理中断可以确保系统的实时响应能力,并且能够在中断服务程序(ISR)中执行关键操作。FreeRTOS提供了一些机制来帮助开发者管理中断,并确保在多任务环境下中断处理的安全性和高效性。 任何中…

【AI大模型】Transformer模型:Postion Embedding概述、应用场景和实现方式的详细介绍。

一、位置嵌入概述 \1. 什么是位置嵌入&#xff1f; 位置嵌入是一种用于编码序列中元素位置信息的技术。在Transformer模型中&#xff0c;输入序列中的每个元素都会被映射到一个高维空间中的向量表示。然而&#xff0c;传统的自注意力机制并不包含位置信息&#xff0c;因此需要…

3CCD的工作原理

昨天看编辑送的一本《计算机视觉》中3CCD的工作原理错了&#xff0c;其实是百度百科错了&#xff0c;所以我想有人就照搬照抄错了。专业问题不要问百度&#xff0c;百度就是骗子一样的存在&#xff0c;这么多年就从来没有把心思放在做事上。3CCD通过光学棱镜分光后就已经是单色…

智能摄像头MP4格式化恢复方法

如果说生孩子扎堆&#xff0c;那很显然最近智能摄像头多碎片的恢复也扎堆了&#xff0c;这次恢复的是一个不知名的小品牌。其采用了mp4视频文件方案&#xff0c;不过这个案例的特殊之处在于其感染了病毒且不只一次&#xff0c;我们来看看这个小品牌的智能恢复头格式化的恢复方法…

Oracle发邮件功能:设置的步骤与注意事项?

Oracle发邮件配置教程&#xff1f;如何实现Oracle发邮件功能&#xff1f; Oracle数据库作为企业级应用的核心&#xff0c;提供了内置的发邮件功能&#xff0c;使得数据库管理员和开发人员能够通过数据库直接发送邮件。AokSend将详细介绍如何设置Oracle发邮件功能。 Oracle发邮…

基于web的 BBS论坛管理系统设计与实现

博主介绍&#xff1a;专注于Java .net php phython 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设&#xff0c;从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟 我的博客空间发布了1000毕设题目 方便大家学习使用 感兴趣的可以…

Linux 基本使用和 web 程序部署 ( 8000 字 Linux 入门 )

一&#xff1a;Linux 背景知识 1.1. Linux 是什么 Linux 是一个操作系统. 和 Windows 是 “并列” 的关系&#xff0c;经过这么多年的发展, Linux 已经成为世界第一大操作系统&#xff0c;安卓系统本质上就是 Linux. 1.2 Linux 发行版 Linux 严格意义来说只是一个 “操作系…