前端CSS基础8(盒子模型(margin、border、padding、content))

2024-04-23 22:44

本文主要是介绍前端CSS基础8(盒子模型(margin、border、padding、content)),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前端CSS基础8(盒子模型(margin、border、padding、content))

  • CSS盒子模型
    • CSS中常用的长度单位
    • 元素的分类,各个元素的显示模式
    • 修改元素的显示模式(类型)
    • 盒子模型的组成部分
    • 盒子内容区-content
    • CSS盒子的默认宽度
    • 盒子的内边距-padding
    • 盒子边框-border
    • 盒子外边距-margin
  • 处理内容溢出
  • CSS中隐藏元素的两种常见方式
  • CSS样式的继承

CSS盒子模型

CSS中常用的长度单位

在 CSS 中,常用的长度单位包括:

  • 像素(px):最常用的长度单位,通常指定固定大小。
.example {width: 200px;
}
  • 百分比(%):相对于父元素的百分比值。
.example {width: 50%;
}
  • EM(em):相对于元素自身字体大小的倍数。相当于当前元素font-size的倍数
.example {font-size: 50px;width:10em;height:10em;
}
  • REM(rem):相对于根元素(html)的字体大小的倍数。
.example {padding: 2rem;
}

元素的分类,各个元素的显示模式

  • 行内元素:不独占一行,不能通过CSS设置宽高。
  • 块级元素:独占一行,可以通过CSS设置宽高。
  • 行内块元素:不独占一行,但是可以通过CSS设置宽高。

在这里插入图片描述

修改元素的显示模式(类型)

想要修改元素的显示模式,需要用到display属性来修改。
display可以取以下值,分别代表的意义如下表:

描述
nono元素会被隐藏
block元素将作为块级元素显示
inline元素将作为内联元素显示
inline-block元素将作为行内块元素显示

盒子模型的组成部分

CSS会把所有的HTML元素都看成一个盒子,所有的样式也都是基于这个盒子。
margin(外边距):盒子与外界的距离
border(边框):盒子的边框
padding(内边距):紧贴内容的补白区域,留白
content(内容):元素中的文本或者后代元素都是它的内容
如图:
在这里插入图片描述
注意:自设置高度和宽度时margin不会影响盒子的大小,但会影响盒子的位置。

盒子内容区-content

CSS属性功能属性值
width设置内容区域宽度长度
height设置内容区域高度长度
max-width设置内容区域最大宽度长度
max-height设置内容区域最大高度长度
min-width设置内容区域最小宽度长度
min-height设置内容区域最小高度长度

CSS盒子的默认宽度

默认宽度就是不设置width属性时,元素所呈现出来的宽度(此时margin参与影响盒子的大小)
总宽度=父的content-自身的左右margin
内容的宽度=父的content-自身的左右margin-自身的左右border-自身的左右padding

盒子的内边距-padding

CSS属性名功能属性值
padding-top上内边距长度
padding-right右内边距长度
padding-bottom下内边距长度
padding-left左内边距长度
padding复合属性长度,可设置1~4个值
  padding: 10px ; /*四个方向都为10像素的内边距 */padding: 10px 20px ; /* 上下,左右分别为10、10、20、20像素的内边距 */padding: 10px 20px 15px; /* 上、左右、下分别为10、20、20、15像素的内边距 */padding: 10px 20px 15px 25px; /* 上右下左分别为10、20、15、25像素的内边距 */

注意:行内元素的左右内边距可以设置,上下不可以
块级元素和行内块元素上下左右都可以设置。

盒子边框-border

属性名功能属性值
border-style边框线风格
复合了四个方向的边框风格
none:默认值
solid:实线
dashed:虚线
dotted:点线
double:双实线
border-width边框线宽度
复合了四个方向的边框宽度
长度,默认3px
border-color边框颜色
复合了四个方向的边框颜色
颜色,默认黑色
border复合属性值没有顺序和数量要求
border-left
border-left-style
border-left-width
border-left-color

border-right
border-right-style
border-right-width
border-right-color

border-top
border-top-style
border-top-width
border-top-color

border-bottom
border-bottom-style
border-bottom-width
border-bottom-color
分别设置各个方向的边框同上
border-radius用于设置元素的边框圆角长度值
(px,%,em等)
指定圆角的半径

盒子外边距-margin

CSS属性值功能属性值
margin-left左外边距CSS中的长度值
margin-right右外边距CSS中的长度值
margin-top上外边距CSS中的长度值
margin-bottom下外边距CSS中的长度值
margin复合属性,可以写1~4个值,规律同padding(顺时针)CSS中的长度值

margin注意事项

  • 子元素的margin,是参考父元素的content计算的。(因为是父亲的 content中承装着子元素)(也就是盒子套盒子,父亲也是一个盒子,父盒子套着子盒子)
    在这里插入图片描述
  • 上margin、左margin :影响自己的位置;(盒子左上角)
  • 下margin、 右margin :影响后面兄弟元素的位置。(盒子右下角)
  • 块级元素、行内块元素,均可以完美地设置四个方向的margin ;但行内元素,左右margin可以完美设置,上下 margin设置无效。
  • margin的值也可以是auto,如果给一个 块级元素设置左右margin 都为auto,该块级元素会在父元素中水平居中。
  • margin的值可以是负值。
    在这里插入图片描述
    CSS中什么是margin塌陷,如何解决
    Margin 塌陷第一个子元素的上margin会作用在父元素上,最后一个子元素的下margin会作用在父元素上。

解决Margin 塌陷的方法包括:

  • 父元素添加内边距(padding)或边框(border):通过为父元素添加内边距或边框,可以防止子元素的外边距与父元素的外边距发生合并。给父元素设置宽度不为0的padding或者border。
  • 使用浮动或定位:浮动(float)或定位(positioning)可以阻止外边距合并。
  • 使用inline-block替代block:对于行内块元素(inline-block),外边距不会合并。
  • 清除浮动:清除浮动也可以避免外边距塌陷的问题。
  • 使用CSS属性overflow: hidden;:在父元素中添加此属性可以触发BFC(块级格式化上下文),从而避免外边距合并。

CSS中什么是margin合并,如何解决
margin合并:上面兄弟元素的下外边距和下面兄弟元素的上外边距会合并,取一个最大值而不是相加
解决margin合并的方法
无需解决,在布局的时候上下的兄弟元素,只给一个设置上下外边距就可以了。

处理内容溢出

CSS属性值功能属性值
overflow溢出内容的处理方式visible:显示,默认值
hidden:隐藏
scroll:显示滚动条,不论内容是否溢出
auto:自动显示滚动条,内容不溢出不显示
overflow-x水平方向溢出内容的处理方式同上
overflow-y垂直方向溢出内容的处理方式同上

CSS中隐藏元素的两种常见方式

CSS中隐藏元素的两种常见方式是使用display属性和visibility属性。

使用display: none;: 这种方式会完全从文档流中移除元素,并且不会给它留下任何空间。元素将不可见且不可点击。

.hidden-element {display: none;
}

使用visibility: hidden;: 这种方式会使元素不可见,但仍然会保留其在文档流中的位置,即元素所占据的空间不会消失,只是内容不可见。

.element {visibility: hidden;
}

CSS样式的继承

在 CSS 中,样式的继承是指子元素会继承父元素的某些样式属性。不是所有样式都可以被继承,只有一部分特定的属性才会被子元素继承。通常文本相关的样式属性比如颜色、字体大小等会被子元素继承,而布局相关的属性一般不会被继承。

这篇关于前端CSS基础8(盒子模型(margin、border、padding、content))的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

从基础到高级详解Python数值格式化输出的完全指南

《从基础到高级详解Python数值格式化输出的完全指南》在数据分析、金融计算和科学报告领域,数值格式化是提升可读性和专业性的关键技术,本文将深入解析Python中数值格式化输出的相关方法,感兴趣的小伙... 目录引言:数值格式化的核心价值一、基础格式化方法1.1 三种核心格式化方式对比1.2 基础格式化示例

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

从基础到进阶详解Python条件判断的实用指南

《从基础到进阶详解Python条件判断的实用指南》本文将通过15个实战案例,带你大家掌握条件判断的核心技巧,并从基础语法到高级应用一网打尽,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录​引言:条件判断为何如此重要一、基础语法:三行代码构建决策系统二、多条件分支:elif的魔法三、

Python WebSockets 库从基础到实战使用举例

《PythonWebSockets库从基础到实战使用举例》WebSocket是一种全双工、持久化的网络通信协议,适用于需要低延迟的应用,如实时聊天、股票行情推送、在线协作、多人游戏等,本文给大家介... 目录1. 引言2. 为什么使用 WebSocket?3. 安装 WebSockets 库4. 使用 We

从基础到高阶详解Python多态实战应用指南

《从基础到高阶详解Python多态实战应用指南》这篇文章主要从基础到高阶为大家详细介绍Python中多态的相关应用与技巧,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、多态的本质:python的“鸭子类型”哲学二、多态的三大实战场景场景1:数据处理管道——统一处理不同数据格式

MySQL数据类型与表操作全指南( 从基础到高级实践)

《MySQL数据类型与表操作全指南(从基础到高级实践)》本文详解MySQL数据类型分类(数值、日期/时间、字符串)及表操作(创建、修改、维护),涵盖优化技巧如数据类型选择、备份、分区,强调规范设计与... 目录mysql数据类型详解数值类型日期时间类型字符串类型表操作全解析创建表修改表结构添加列修改列删除列