常规流布局(补充)——WEB开发系列30

2024-09-05 18:20

本文主要是介绍常规流布局(补充)——WEB开发系列30,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CSS(层叠样式表)作为现代网页设计的基础之一,其布局功能一直是开发者关注的重点。了解CSS常规流布局是掌握网页布局的第一步。


一、什么是常规流布局?

常规流布局(Normal Flow Layout)是CSS布局的基础,也是网页布局的默认方式。在常规流中,所有的元素都按照文档中的顺序依次排列。这种布局方式非常直观,可以帮助我们理解各种布局模式的基础。常规流布局包括块级元素(Block-level Elements)和行内元素(Inline Elements)的布局方式。


块级元素(Block-level Elements)

块级元素是指那些会在新的一行开始显示的元素。这些元素通常会占据父容器的整个宽度,直到遇到下一个块级元素或容器的边缘。常见的块级元素包括 ​​<div>​​、​​<p>​​、​​<h1>​​、​​<section>​​、​​<article>​​ 等。

示例代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Block-Level Elements Example</title><style>.block {background-color: lightblue;margin: 10px;padding: 10px;}</style>
</head>
<body><div class="block">这是第一个块级元素</div><div class="block">这是第二个块级元素</div><div class="block">这是第三个块级元素</div>
</body>
</html>

解释:

在这个示例中的三个 ​​div​​ 元素被定义为块级元素。它们每个都在新的一行上显示,具有相同的背景色、边距和内边距。每个 ​​div​​​ 元素都占据了父容器的整个宽度,除非有其他元素阻止其占据更多空间。


行内元素(Inline Elements)

行内元素是在同一行中排列的元素,它们只占据其内容的宽度,不会强制换行。常见的行内元素包括 ​​<span>​​、​​<a>​​、​​<strong>​​、​​<em>​​​ 等。

示例代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Inline Elements Example</title><style>.inline {background-color: lightcoral;margin: 5px;padding: 5px;}</style>
</head>
<body><p>这是一个段落,其中包含<span class="inline">行内元素1</span>和<span class="inline">行内元素2</span>的例子。</p>
</body>
</html>

解释:

示例中两个 ​​span​​ 元素被定义为行内元素。它们显示在同一行中,与周围的文本混合在一起。即使这些 ​​span​​​ 元素具有背景色、边距和内边距,它们也不会影响其他行内元素的布局。


二、常规流布局的计算规则

在常规流布局中,元素的排列方式遵循以下规则:

块级元素的排列

  1. 从上到下排列: 块级元素会从上到下排列,每个块级元素的起始位置都会在新的一行上。它们的宽度默认是父容器的全宽。
  2. 宽度和高度: 块级元素的宽度可以被调整,通常是通过 ​​width​​​ 属性设置。默认情况下,高度会根据内容的大小自适应。

行内元素的排列

  1. 从左到右排列: 行内元素会从左到右排列,并在同一行中显示。它们的宽度和高度通常由内容决定。
  2. 行内换行: 当行内元素的总宽度超出父容器的宽度时,会自动换行。

三、实际应用中的常规流布局

在实际应用中,常规流布局经常用于创建简单的页面布局,如文章段落、列表等。以下是一些常见的布局示例:

示例 1:基本页面布局

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Basic Page Layout</title><style>header, footer {background-color: lightgray;padding: 10px;text-align: center;}main {margin: 10px;padding: 10px;}article {background-color: lightyellow;margin: 10px 0;padding: 10px;}</style>
</head>
<body><header>网站标题</header><main><article>第一篇文章</article><article>第二篇文章</article></main><footer>网站底部</footer>
</body>
</html>

解释:

示例展示了一个简单的网页布局,包括头部、主体和底部。​​header​​、​​main​​ 和 ​​footer​​ 都是块级元素,按顺序从上到下排列。​​article​​​ 元素也是块级元素,用于展示文章内容。


示例 2:内联元素的使用

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Inline Elements Usage</title><style>.highlight {background-color: yellow;padding: 2px;}</style>
</head>
<body><p>这是一段包含<span class="highlight">突出显示</span>的文本,展示了行内元素的效果。</p>
</body>
</html>

解释:

示例演示了如何在段落中使用行内元素。​​span​​​ 元素用来突出显示文本,并且不会改变行内文本的布局。

四、常规流布局中的常见问题

在使用常规流布局时,我们可能会遇到一些常见的问题,包括:

  1. 元素溢出: 当元素的内容超出其父容器的宽度时,内容会自动换行或溢出。这可以通过设置合适的宽度或使用 ​​overflow​​ 属性来控制。
  2. 行高不一致: 不同的元素或内容可能导致行高不一致,这通常需要通过设置 ​​line-height​​​ 或调整内边距来解决。

如有表述错误及欠缺之处敬请指正补充。

这篇关于常规流布局(补充)——WEB开发系列30的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1139719

相关文章

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配

Python38个游戏开发库整理汇总

《Python38个游戏开发库整理汇总》文章介绍了多种Python游戏开发库,涵盖2D/3D游戏开发、多人游戏框架及视觉小说引擎,适合不同需求的开发者入门,强调跨平台支持与易用性,并鼓励读者交流反馈以... 目录PyGameCocos2dPySoyPyOgrepygletPanda3DBlenderFife