CSS- 3.1 盒子模型-块级元素、行内元素、行内块级元素和display属性

本系列可作为前端学习系列的笔记,代码的运行环境是在HBuilder中,小编会将代码复制下来,大家复制下来就可以练习了,方便大家学习。

HTML系列文章 已经收录在前端专栏,有需要的宝宝们可以点击前端专栏查看!

点赞关注不迷路!您的点赞、关注和收藏是对小编最大的支持和鼓励!

系列文章目录

CSS- 1.1 css选择器

CSS- 2.1 实战之图文混排、表格、表单、学校官网一级导航栏

CSS- 3.1 盒子模型-块级元素、行内元素、行内块级元素和display属性

CSS- 4.1 浮动(Float)

CSS- 4.2 相对定位(position: relative)


目录

系列文章目录

前言

一、理论部分 

1. 块级元素(Block-level Elements)

2. 行内元素(Inline Elements)

3. 块级元素与行内元素的区别总结

4. 行内块级元素(Inline-block Elements)

5. 元素类型的转换

6. 实际应用中的选择

7. 注意事项

8. 总结

 二、实战部分

总结


前言

小编作为新晋码农一枚,会定期整理一些写的比较好的代码,作为自己的学习笔记,会试着做一下批注和补充,如转载或者参考他人文献会标明出处,非商用,如有侵权会删改!欢迎大家斧正和讨论!

一、理论部分 

在CSS中,元素根据其默认的显示方式可以分为块级元素(Block-level Elements)行内元素(Inline Elements)。理解这两者的区别对于网页布局和样式设计至关重要。下面将从定义、特点、常用元素、布局影响及转换方法等方面进行全面介绍。


1. 块级元素(Block-level Elements)

        块级元素在页面中默认独占一行,会从新的一行开始显示,并且会尽可能地占据其父元素的全部宽度。块级元素通常用于构建页面的结构,如标题、段落、列表等。

(1)特点

  • 独占一行:块级元素前后会自动换行,不会与其他元素在同一行显示。
  • 可设置宽高:可以通过CSS的widthheight属性设置块级元素的宽度和高度。
  • 可设置内外边距:支持marginpadding属性,且这些属性会对周围元素产生影响。
  • 默认宽度为父元素的100%:如果不设置宽度,块级元素会默认占据父元素的全部宽度。

(2)常用块级元素

  • <div>:通用的块级容器,用于布局。
  • <p>:段落。
  • <h1> 到 <h6>:标题。
  • <ul><ol><li>:无序列表、有序列表和列表项。
  • <table>:表格。
  • <form>:表单。
  • <header><footer><section><article>:HTML5语义化标签。

(3)示例

html

<div>这是一个块级元素</div>
<p>这是另一个块级元素</p>

css

div {background-color: lightblue;width: 200px;height: 100px;margin: 10px;padding: 10px;
}
p {background-color: lightgreen;width: 300px;margin: 10px;
}

效果

  • <div><p>会各自占据一行,并且可以设置宽高和边距

2. 行内元素(Inline Elements)

(1)定义

行内元素不会独占一行,而是与其他行内元素在同一行显示,直到空间不足时才会换行。行内元素通常用于包裹文本或其他行内内容,如链接、强调文本等。

(2)特点

  • 不独占一行:行内元素会与其他行内元素在同一行显示,直到空间不足。
  • 不能直接设置宽高:默认情况下,行内元素的宽度和高度由其内容决定,不能通过widthheight属性直接设置。
  • 内外边距的垂直方向可能无效marginpadding的水平方向(左右)会生效,但垂直方向(上下)可能不会影响周围元素的布局。
  • 默认宽度由内容决定:行内元素的宽度取决于其内容,不会自动扩展到父元素的全部宽度。

(3)常用行内元素

  • <span>:通用的行内容器,用于样式化文本。
  • <a>:超链接。
  • <strong><em>:强调文本。
  • <img>:图片(虽然<img>是行内元素,但可以通过CSS设置为类似块级元素的行为)。
  • <input><button>:表单控件(某些情况下表现为行内块级元素)。

(4)示例

html

<span>这是一个行内元素</span>
<a href="#">这是一个链接</a>

css 

span {background-color: yellow;padding: 10px;margin: 10px; /* 水平方向生效,垂直方向可能无效 */
}
a {background-color: pink;padding: 5px;
}

效果

  • <span><a>会在同一行显示,且无法直接通过CSS设置宽高。

3. 块级元素与行内元素的区别总结

特性块级元素行内元素
默认显示方式独占一行与其他行内元素同行显示
宽度和高度可通过CSS设置默认由内容决定,不能直接设置
内外边距水平和垂直方向均生效水平方向生效,垂直方向可能无效
默认宽度父元素的100%由内容决定
常用场景构建页面结构包裹文本或小范围内容

4. 行内块级元素(Inline-block Elements)

CSS还提供了一种混合模式——行内块级元素(Inline-block Elements),它结合了行内元素和块级元素的特点:

  • 不独占一行:可以与其他行内块级元素或行内元素在同一行显示。
  • 可设置宽高:可以通过CSS设置宽度和高度。
  • 内外边距均生效:水平和垂直方向的marginpadding都有效。

(1)如何将元素设置为行内块级

通过CSS的display: inline-block;属性可以将元素设置为行内块级。

(2)示例

html

<span class="inline-block">行内块级元素1</span>
<span class="inline-block">行内块级元素2</span>

css

.inline-block {display: inline-block;width: 100px;height: 50px;background-color: coral;margin: 5px;padding: 5px;
}

效果

  • 两个<span>元素会在同一行显示,并且可以设置宽高和边距。

5. 元素类型的转换

CSS的display属性可以改变元素的默认显示方式:

  • display: block;:将元素设置为块级元素。
  • display: inline;:将元素设置为行内元素。
  • display: inline-block;:将元素设置为行内块级元素。
  • display: none;:隐藏元素(不占据空间)。
  • display: flex;display: grid;:用于现代布局方式。

(1)示例

html

<a href="#" class="block-link">将链接设置为块级元素</a>
<div class="inline-div">将div设置为行内元素</div>

css

.block-link {display: block;width: 200px;height: 50px;background-color: lightblue;margin: 10px;
}
.inline-div {display: inline;background-color: lightgreen;padding: 5px;
}

效果

  • <a>元素会独占一行,并可以设置宽高。
  • <div>元素会与其他行内元素同行显示,且无法设置宽高。

6. 实际应用中的选择

  • 使用块级元素
    • 当需要构建页面的结构(如导航栏、内容区域、页脚)时。
    • 当需要设置元素的宽高、边距时。
    • 当需要元素独占一行时。
  • 使用行内元素
    • 当需要包裹文本或小范围内容(如链接、强调文本)时。
    • 当需要元素与其他元素在同一行显示时。
  • 使用行内块级元素
    • 当需要元素在同一行显示,但又能设置宽高和边距时(如导航菜单项、按钮组)。

7. 注意事项

  1. 默认样式的重置
    • 不同浏览器对元素的默认样式可能有所不同,建议使用CSS重置(如normalize.css)或手动重置默认样式。
  2. 语义化
    • 在HTML5中,应尽量使用语义化的标签(如<header><section><article>)来替代<div>,以提高代码的可读性和SEO效果。
  3. 布局的灵活性
    • 现代CSS布局方式(如Flexbox、Grid)可以更灵活地控制元素的排列,但在某些情况下,理解块级和行内元素的基本概念仍然很重要。

8. 总结

  • 块级元素:独占一行,可设置宽高和边距,常用于构建页面结构。
  • 行内元素:与其他行内元素同行显示,不能直接设置宽高,常用于包裹文本或小范围内容。
  • 行内块级元素:结合了两者的特点,可在同一行显示且可设置宽高和边距。
  • display属性:可以灵活地改变元素的显示方式,满足不同的布局需求。

 二、实战部分

1.代码如下

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>盒子模型-块级元素,行内元素</title><style type="text/css">/* 块级元素的特点1.块级元素独占一行,标准文档流2.宽和高可以设置3.margin可以取负数,padding不可以取负数,padding和margin可以相加4.块级元素margin取同一空间值时,会出现塌陷,就是取最大值而不是相加 */div{border: 1px solid black;}.div1{width: 200px;height: 100px;/* margin: 10px;上下左右margin: 10px 30px;上下 左右margin: 10px auto;盒子在浏览器页面居中,上下留10pxmargin: 10px 20px 30px;上 左右 下margin: 10px 20px 30px 40px;上 右 下 左 */margin-left: 50px;padding-left: 20px;margin-bottom: 20px;/* display:inline-block; */  /* 通过CSS的display: inline-block;属性可以将元素设置为行内块级。 */}.div2{width: 100px;height: 50px;margin-left: 20px;}.div3{width: 100px;height: 100px;margin-top: 50px;/* display: inline-block; */}.div4{width: 200px;height: 100px;margin-top: 50px;/* display: inline-block; */}/* 行内元素特点:除span a是行内元素外,其余都是块级元素1.不独占一行2.不可以设置宽高,宽高由内容决定3.margin和padding上下设置无效,左右有效4.margin不会在行内元素里出现塌陷 */span{border: 1px solid black;}#sp1{width: 100px;height: 100px;margin-top: 100px;margin-left: 50px;padding-left: 50px;padding-top:50px ;margin-right: 50px;/* display:block; */  /* display: block;:将元素设置为块级元素 */}#sp2{margin-left:50px ;}</style></head><body><h1>块级元素</h1><div class="div1">div1<div class="div2">div2</div></div><div class="div3">div3</div><div class="div4">div4</div><h1>行内元素</h1><br><br><span id="sp1">span1span1</span><span id="sp2">span2</span><a href="../个人主题网站/index.html"><h3 align="center">返回首页</h3></a></body>
</html>

2.代码运行如下

3.修改块级元素为行内快寄元素,行内元素变为块级元素

在块级元素div 的CSS样式中添加:display:inline-block;  属性可以将元素设置为行内块级。

在行内元素span 的CSS样式中添加:display: block;:将元素设置为块级元素

修改后的代码如下:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>盒子模型-块级元素,行内元素</title><style type="text/css">/* 块级元素的特点1.块级元素独占一行,标准文档流2.宽和高可以设置3.margin可以取负数,padding不可以取负数,padding和margin可以相加4.块级元素margin取同一空间值时,会出现塌陷,就是取最大值而不是相加 */div{border: 1px solid black;}.div1{width: 200px;height: 100px;/* margin: 10px;上下左右margin: 10px 30px;上下 左右margin: 10px auto;盒子在浏览器页面居中,上下留10pxmargin: 10px 20px 30px;上 左右 下margin: 10px 20px 30px 40px;上 右 下 左 */margin-left: 50px;padding-left: 20px;margin-bottom: 20px;display:inline-block;  /* 通过CSS的display: inline-block;属性可以将元素设置为行内块级。 */}.div2{width: 100px;height: 50px;margin-left: 20px;}.div3{width: 100px;height: 100px;margin-top: 50px;display: inline-block;}.div4{width: 200px;height: 100px;margin-top: 50px;display: inline-block;}/* 行内元素特点:除span a是行内元素外,其余都是块级元素1.不独占一行2.不可以设置宽高,宽高由内容决定3.margin和padding上下设置无效,左右有效4.margin不会在行内元素里出现塌陷 */span{border: 1px solid black;}#sp1{width: 100px;height: 100px;margin-top: 100px;margin-left: 50px;padding-left: 50px;padding-top:50px ;margin-right: 50px;display:block;  /* display: block;:将元素设置为块级元素 */}#sp2{margin-left:50px ;}</style></head><body><h1>块级元素</h1><div class="div1">div1<div class="div2">div2</div></div><div class="div3">div3</div><div class="div4">div4</div><h1>行内元素</h1><br><br><span id="sp1">span1span1</span><span id="sp2">span2</span><a href="../个人主题网站/index.html"><h3 align="center">返回首页</h3></a></body>
</html>

代码运行:


总结

以上就是今天要讲的内容,本文简单记录了CSS的盒子模型-块级元素、行内元素、行内块级元素和display属性,仅作为一份简单的笔记使用,大家根据注释理解

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

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

相关文章

Git/GitLab日常使用的命令指南来了!

在 GitLab 中拉取并合并代码的常见流程是通过 Git 命令来完成的。以下是一个标准的 Git 工作流&#xff0c;适用于从远程仓库&#xff08;如 GitLab&#xff09;拉取代码、切换分支、合并更新等操作。 &#x1f310; 一、基础命令&#xff1a;拉取最新代码 # 拉取远程仓库的所…

HTML 表格与div深度解析区别及常见误区

一、HTML<div>元素详解 <div>是HTML中最基本的块级容器元素&#xff0c;本身没有语义&#xff0c;主要用于组织和布局页面内容。以下是其核心用法&#xff1a; 1. 基础结构与特性 <div><!-内部可包含任意HTML元素 --><h2>标题</h2><p…

mybatisPlus 新增时 其他字段的值和 id 保持一致实现方法

MyBatis-Plus 实现 sp_id_path 与 id 同步的方案 要实现新增时 sp_id_path 自动与 id 保持一致&#xff0c;需要在实体类和插入逻辑中做相应处理。MyBatis-Plus 提供了几种方式来实现这一需求&#xff1a; 方案一&#xff1a;使用 MyBatis-Plus 的自动填充功能 这是最优雅的…

兰亭妙微设计:为生命科技赋予人性化的交互语言

在医疗科技日新月异的今天&#xff0c;卓越的硬件性能唯有匹配恰如其分的交互语言&#xff0c;方能真正发挥价值。作为专注于医疗UI/UX设计的专业团队&#xff0c;兰亭妙微设计&#xff08;www.lanlanwork.com&#xff09;始终相信&#xff1a;每一处像素的排布&#xff0c;都应…

Tcping详细使用教程

Tcping详细使用教程 下载地址 https://download.elifulkerson.com/files/tcping/0.39/在windows环境下安装tcping 在以上的下载地中找到exe可执行文件&#xff0c;其中tcping.exe适用于32位Windows系统&#xff0c;tcping64.exe适用于64位Windows操作系统。 其实tcping是个…

springCloud/Alibaba常用中间件之Seata分布式事务

文章目录 SpringCloud Alibaba:依赖版本补充Seata处理分布式事务(AT模式)AT模式介绍核心组件介绍AT的工作流程&#xff1a;两阶段提交&#xff08;**2PC**&#xff09; Seata-AT模式使用Seata(2.0.0)下载、配置和启动Seata案例实战前置代码添加全局注解 GlobalTransactional Sp…

COMSOL随机参数化表面流体流动模拟

基于粗糙度表面的裂隙流研究对于理解地下水的流动、污染物传输以及与之相关的地质灾害&#xff08;如滑坡&#xff09;等方面具有重要意义。本研究通过蒙特卡洛方法生成随机表面形貌&#xff0c;并利用COMSOL Multiphysics对随机参数化表面的微尺度流体流动进行模拟。 参数化…

初识——QT

QT安装方法 一、项目创建流程 创建项目 入口&#xff1a;通过Qt Creator的欢迎页面或菜单栏&#xff08;文件→新建项目&#xff09;创建新项目。 项目类型&#xff1a;选择「Qt Widgets Application」。 路径要求&#xff1a;项目路径需为纯英文且不含特殊字符。 构建系统…

7-15 计算圆周率

π​131​352!​3573!​⋯357⋯(2n1)n!​⋯ 输入格式&#xff1a; 输入在一行中给出小于1的阈值。 输出格式&#xff1a; 在一行中输出满足阈值条件的近似圆周率&#xff0c;输出到小数点后6位。 输入样例&#xff1a; 0.01输出样例&#xff1a; 3.132157 我的代码 #i…

【图片识别工具】批量单据识别批量重命名,批量OCR识别图片文字并重命名,批量改名工具的使用步骤和注意事项

一、适用场景 ​​财务与发票管理​​&#xff1a;企业需处理大量电子发票或扫描件&#xff0c;通过OCR识别发票代码、金额等关键信息&#xff0c;自动重命名为发票号_金额.pdf格式&#xff0c;便于归档与税务审计。 ​​物流单据处理​​&#xff1a;物流公司需从运单中提取单…

Modbus TCP转Profinet网关:数字化工厂异构网络融合的核心枢纽

在现代工业生产中&#xff0c;随着智能制造和工业互联网的不断发展&#xff0c;数字化工厂成为了制造业升级的重要方向。数字化工厂的核心在于实现设备、数据和人的互联互通&#xff0c;而这其中&#xff0c;通信协议扮演着至关重要的角色。今天&#xff0c;我们就来探讨开疆智…

win11平台下的docker-desktop中的volume位置问题

因为需要搞个本地的mysql数据库&#xff0c;而且本地安装的程序较多&#xff0c;不想再安mysql了&#xff0c;就想到使用docker来安装。而且因为数据巨大&#xff0c;所以想到直接使用转移data文件夹的方式。 各种查询&#xff0c;而且还使用ai查询&#xff0c;他们都提到&…

【MySQL】项目实践

个人主页&#xff1a;Guiat 归属专栏&#xff1a;MySQL 文章目录 1. 项目实践概述1.1 项目实践的重要性1.2 项目中MySQL的典型应用场景 2. 数据库设计流程2.1 需求分析与规划2.2 设计过程示例2.3 数据库设计工具 3. 电子商务平台实践案例3.1 系统架构3.2 数据库Schema设计3.3 数…

React学习———CSS Modules(样式模块化)

CSS Modules CSS Modules&#xff08;样式模块化&#xff09;是一种用于模块化和局部作用域化CSS样式的技术&#xff0c;让CSS只在当前组件内生效&#xff0c;避免全局样式冲突的技术方案 工作原理 文件命名&#xff1a;通常以.module.css、.module.less、.module.scss等结尾…

agent 智能体应用产品:生图、生视频、代码等

生图片 Lovart&#xff1a;全球首个设计 Agent https://www.lovart.ai/ 生视频 AI 视频 Agent 产品&#xff1a;Medeo https://www.medeo.app/ 代码 vscode copilot、cursor、trae 其他research manus grok等各个大模型产品

青少年ctf平台应急响应-应急响应2

题目&#xff1a; 当前服务器被创建了一个新的用户&#xff0c;请提交新用户的用户名&#xff0c;得到的结果 ssh rootchallenge.qsnctf.com -p 30327 这个命令用于通过 SSH 协议连接到指定的远程服务器。具体解释如下&#xff1a; ssh&#xff1a;这是在 Unix-like 系统中…

码蹄集——圆包含

MT1181 圆包含 输入2个圆的圆心的坐标值&#xff08;x&#xff0c;y&#xff09;和半径&#xff0c;判断断一个圆是否完全包含另一个圆&#xff0c;输出YES或者NO。另&#xff1a;内切不算做完全包含。 格式 输入格式&#xff1a;输入整型&#xff0c;空格分隔。 每行输入一组…

基于EMD-PCA-LSTM的光伏功率预测模型研究

摘要 本文提出了一种结合经验模态分解(EMD)、主成分分析(PCA)和长短期记忆网络(LSTM)的混合预测模型,用于提高光伏功率预测的准确性。该模型首先利用EMD算法将非平稳的光伏功率序列分解为多个本征模态函数(IMF),然后通过PCA对多维气象特征进行降维处理,最后将处理后的特征输…

MYSQL创建索引的原则

创建索引的原则包括&#xff1a; 表中的数据量超过10万以上时考虑创建索引。 选择查询频繁的字段作为索引&#xff0c;如查询条件、排序字段或分组字段。 尽量使用复合索引&#xff0c;覆盖SQL的返回值。 如果字段区分度不高&#xff0c;可以将其放在组合索引的后面。 对于…

vue+threeJS 大理石贴图

嗨&#xff0c;我是小路。今天主要和大家分享的主题是“vuethreeJS 大理石贴图”。 通过 Vue 3 和 Three.js 实现大理石纹理效果&#xff0c;并将这种技术应用于产品展示、虚拟展览、甚至是互动游戏之中&#xff0c;其潜力无穷。今天主要介绍基础的大理石贴图。 vueth…