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

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

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

相关文章

关于分布式锁的释放和spring事务提交时机不符合预期从而带来的数据不一致的问题

提要 首先注意,本文探讨的不是分布式事务,请读者注意区分! 在我们的日常开发种,分布式锁和spring事务是常见的两种控制数据一致性的方式。 分布式锁和spring事务各自的作用就不做阐述了,不是本文重点,本文…

AIGC技术的发展现状与未来趋势

AIGC(人工智能生成内容)技术是近年来快速发展的领域之一,它涉及使用人工智能来创建或编辑内容,包括文本、图像、音乐和视频等。这项技术的进步为各个行业带来了革命性的变化,同时也引发了一系列伦理和风险问题。 一、技…

宜搜科技死磕港交所上市:从搜索引擎到广告投放,业绩疲态凸显

近日,宜搜科技控股有限公司(下称“宜搜科技”)向港交所递交招股书,计划在香港主板上市,中银国际为其独家保荐人。 值得注意的是,宜搜科技已在资本市场辗转多年。该公司曾于2014年向纽交所递交上市申请&…

CentOS7编译jsoncpp静态库

1. 官网下载源码 github地址:GitHub - open-source-parsers/jsoncpp at update 2. 编译 Unzip jsoncpp-master.zip Cd jsoncpp-master mkdir -p ./build/debug cd ./build/debug/ cmake -DCMAKE_BUILD_TYPEdebug -DBUILD_SHARED_LIBSOFF -DCMAKE_ARCHIVE_OUTPUT_D…

docker快速搭建部署mqtt

文章目录 前言一、mqtt是什么?二、使用步骤1.引入库2.创建临时容器3.创建挂在目录4.将临时容器的配置挂载到宿主机中5.删除临时容器6.运行容器并挂载文件7.登录EMQX内置的管理控制台 总结 前言 一、mqtt是什么? MQTT(Message Queuing Teleme…

Ts类型体操详讲 之 extends infer (下)

目录 1、函数 (1)提取参数类型 (2)提取返回值类型 2、构造器 (1)提取构造器返回值 (2)提取构造器参数类型 3、索引类型 本章我们继续上节的内容继续,展示我们对ex…

提升你的C编程技能:使用cURL下载Kwai视频

概述 本文将介绍如何利用C语言以及cURL库来实现Kwai视频的下载。cURL作为一个功能强大的网络传输工具,能够在C语言环境下轻松地实现数据的传输。我们还将探讨如何运用代理IP技术,提升爬虫的匿名性和效率,以适应Kwai视频平台的发展趋势。 正…

报告!这里发现了一个赛博炼丹的神级平台!

众所周知,“赛博炼丹”是一个AI开发研究领域古老又神秘的活动,它往往对炼丹平台有很高的要求。如果你也是一路从“炼丹小白”成长到“资深AI算法工程师”,那你一定懂我在说什么?说好了,天台见! GpuMall智算…

力扣HOT100 - 108. 将有序数组转换为二叉搜索树

解题思路: 二叉搜索树一般使用中序遍历 class Solution {public TreeNode sortedArrayToBST(int[] nums) {return helper(nums,0,nums.length-1);}public TreeNode helper(int[] nums,int left,int right){if(left>right) return null;//确定根节点//总是选择中…

【缓存服务】⭐️自定义实现一个简易的数据缓存

目录 🍸前言 🍻手写缓存服务 (1)缓存实体类 (2)缓存工具类 (3)测试缓存服务 🍷已有的缓存工具 🍹章末 🍸前言 俗话说 有轮子不用 就是玩 开个…

条件生成对抗网络(cGAN)在AI去衣技术中的应用探索

随着深度学习技术的飞速发展,生成对抗网络(GAN)作为其中的一个重要分支,在图像生成、图像修复等领域展现出了强大的能力。其中,条件生成对抗网络(cGAN)通过引入条件变量来控制生成模型的输出&am…

Spring SpringBoot(详解)

1. Spring简介 1.1 Spring 核心设计思想 1.1.1 Spring 是什么? Spring 是包含了众多⼯具⽅法的 IoC 容器。Spring 指的是 Spring Framework(Spring 框架),它是⼀个开源框架,Spring ⽀持⼴泛的应⽤场景,它…

手撕AVL树(map和set底层结构)(1)

troop主页 今日鸡汤:Action may out always bring happiness;but there is no happiness without action. 行动不一定能带来快乐,但不行动一定不行 C之路还很长 手撕AVL树 一 AVL树概念二 模拟实现AVL树2.1 AVL节点的定义 三 插入更新平衡因子&#xff0…

SpringBoot学习之Kafka下载安装和启动【Mac版本】(三十三)

一、配置Java环境变量 在启动Kafka之前,你需要先正确配置好你的Java环境变量。可以在终端输入java -version检查java环境变量是否配置正确,在Mac上如何配置java环境变量,请读者自行网上搜索操作之,此处不赘叙。 二、下载安装Kafka 1、下载Kafka:Apache Kafka,这两个版本…

四川赢涟电子商务有限公司深耕抖音电商服务

在当今数字化、网络化高速发展的时代,电子商务行业异军突起,成为推动经济增长的重要力量。四川赢涟电子商务有限公司凭借其敏锐的市场洞察力和创新精神,专注于抖音电商服务,致力于为广大消费者提供便捷、高效、个性化的购物体验&a…

Paddle 1.8 与 Paddle 2.0 API 映射表

安装2.6的paddlepaddle之后总是报fluid的错误,查询得知这个接口已经弃用了,但是一直找不到替换接口,偶然查询报错信息的时候找到了映射表,转存一下。 Paddle 1.8 与 Paddle 2.0 API 映射表

如何优雅地Spring事务编程

本文已收录至Github,推荐阅读 👉 Java随想录 微信公众号:Java随想录 在开发中,有时候我们需要对 Spring 事务的生命周期进行监控,比如在事务提交、回滚或挂起时触发特定的逻辑处理。那么如何实现这种定制化操作呢&am…

直播报名 | 科技出海新势力,遥感+AI助力一带一路

遥感技术的出海之路顺畅吗? 国内外遥感应用的关注点相同吗? 目前珈和主要辐射哪些海外国家? … 上周数据赋农季第三期《科技出海,遥感AI赋能“一带一路”提升种植园规模效益》直播预告一出,小伙伴们纷纷来咨询珈和的海…

CentOS安装htop工具

启用 EPEL Repository 安装Htop 首先启用 EPEL Repository: yum -y install epel-release启用 EPEL Repository 后, 可以用 yum 直接安裝 Htop: 安装htop yum -y install htop安装成功 输入htop使用工具 htop安装glances工具 yum install glances

Springboot+Vue项目-基于Java+MySQL的企业客户管理系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…