CSS基础:最详细 padding的 4 种用法解析

news2024/11/25 3:45:42

你好,我是云桃桃。

一个希望帮助更多朋友快速入门 WEB 前端的程序媛。

云桃桃,大专生,一枚程序媛,感谢关注。回复 “前端基础题”,可免费获得前端基础 100 题汇总,回复 “前端工具”,可获取 Web 开发工具合集

269篇原创内容-gzh

后台回复“前端工具”可获取开发工具,持续更新中

后台回复“前端基础题”可得到前端基础100题汇总,持续更新中

后台回复“前端电子书”可获取20+本精选电子书

前言

CSS 中的 padding 属性用于控制元素内容与其边框之间的距离,即元素内边距。

它的主要作用是调整元素内部内容与边框之间上右下左的间距,以增加页面的美观性和布局灵活性。

好,那我们一起来看看吧。

Padding 基础

padding 属性的四个边属性分别是:

  1. padding-top:控制元素顶部内边距的大小,用于设置元素上边距的间距。

  2. padding-right:控制元素右侧内边距的大小,用于设置元素右边距的间距。

  3. padding-bottom:控制元素底部内边距的大小,用于设置元素下边距的间距。

  4. padding-left:控制元素左侧内边距的大小,用于设置元素左边距的间距。

来,代码演示下。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Padding Example</title>
    <style>
      .box {
        width: 200px;
        height: 200px;
        background-color: #f0f;
        margin-bottom: 20px;
      }

      .example1 {
        padding-top: 30px;
      }

      .example2 {
        padding-right: 60px;
      }

      .example3 {
        padding-bottom: 90px;
      }

      .example4 {
        padding-left: 1000px;
      }
    </style>
  </head>
  <body>
    <div class="box example1">Padding Top</div>
    <div class="box example2">Padding Right</div>
    <div class="box example3">Padding Bottom</div>
    <div class="box example4">Padding Left</div>
  </body>
</html>

效果如图。

图片

注意,用开发者工具检查/点选第 1 个元素,高度也从 200 变成 230 了,这是为什么呢?这就是内边距,增加了自身的高度了。为什么增加了呢?能不能固定呢?在第 3 个大标题(重要:padding 对元素大小的影响)处会聊到。

padding 属性的属性值可以是以下类型:

1. 长度值:可以使用像素(px)、百分比(%)、em、rem 等长度单位来指定 padding 的大小。

2. inherit:继承父元素的 padding 值。

注意:负值在 padding 中是不允许的。

简写方法

为了简化 CSS 代码,提高代码的可读性和维护性,通过简写方法,可以将四个方向的 padding 值一次性设置来提高效率。

padding 简写的属性顺序是:padding-top、padding-right、padding-bottom、padding-left。

对于 padding 属性的简写,可以根据需要设置 1、2、3 或 4 个值:

  • 一个值:表示所有四个方向的 padding 都使用相同的值。

  • 两个值:第一个值表示上下方向的 padding,第二个值表示左右方向的 padding。

  • 三个值:分别表示上、左右、下方向的 padding,这个不建议用,建议用4个值写法。

  • 四个值:分别表示上、右、下、左方向的 padding。

好,来看看代码吧。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Padding案例</title>
    <style>
      .box1 {
        width: 200px;
        height: 100px;
        background-color: lightblue;
        padding: 30px; /* 一个值,所有方向都使用30px的padding */
      }

      .box2 {
        width: 200px;
        height: 100px;
        background-color: lightcoral;
        padding: 20px 40px; /* 两个值,上下20px,左右40px的padding */
      }

      .box3 {
        width: 200px;
        height: 100px;
        background-color: lightgreen;
        padding: 10px 20px 30px; /* 三个值,上10px,左右20px,下30px的padding */
      }

      .box4 {
        width: 200px;
        height: 100px;
        background-color: lightskyblue;
        padding: 5px 10px 15px 20px; /* 四个值,上5px,右10px,下15px,左20px的padding */
      }
    </style>
  </head>
  <body>
    <div class="box1">一个值:所有方向都使用30px的padding</div>
    <div class="box2">两个值:上下20px,左右40px的padding</div>
    <div class="box3">三个值:上10px,左右20px,下30px的padding</div>
    <div class="box4">四个值:上5px,右10px,下15px,左20px的padding</div>
  </body>
</html>

重要!padding 对元素大小的影响

当你设置元素的 padding 时,实际上是在元素的内容区域周围添加了填充空间,这会影响元素的实际宽度。举例来说,如果你有一个宽高度为 200px*200px 的盒子,并且为其设置了 20px 的 左右 padding,30px 的上下 padding,则元素的总宽度会变为 240px(200px + 20px + 20px),总高度变为 260px(200px + 30px + 30px)。

换句话说,padding 的添加会增加元素的宽度,因为填充空间会占据外部边框之外的空间。

这一点在设计布局时尤为重要,因为要考虑到 padding 对元素尺寸的影响。

那要解决 padding 对元素宽度的影响,确保元素的宽度固定,怎么做呢?可以采取以下 2 种方法:

1. 盒子模型: 使用盒子模型中的 box-sizing 属性来控制元素的盒子模型。通过设置 box-sizing: border-box;,可以让元素的宽度包括 padding 和 border,而不会影响元素的实际宽度。这样,即使添加了 padding,元素的内容区域仍然保持固定的宽度。

仍然拿第一个案例中的第一个元素举例子。

.box {
  width: 200px;
  height: 200px;
  background-color: #f0f;
  margin-bottom: 20px;
  box-sizing: border-box;
}

效果,就回归 200px 啦。

图片

2. 计算实际宽度: 如果不使用 box-sizing: border-box;,而是采用默认的 content-box,则需要手动计算实际的宽度,包括 padding 在内。例如,如果想要一个总宽度为 240px 的元素,并且设置了 20px 的 padding,则元素的内容区域宽度应为 200px。

.box {
  width: 200px; /* 总宽度变成200 */
  padding: 20px;
}

选择哪种方法取决于你的布局需求。使用 box-sizing: border-box; 更加方便和直观,因为它使得元素的宽度属性直接控制内容区域的宽度,而无需手动计算 padding 对总宽度的影响。

ok,本文完。更多前端系列内容可以go公众.h:云桃桃

图片

推荐阅读:

高颜值登录页面第 2 波(CV即可,带动态背景!)

高颜值登录页面(一键复制)

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

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

相关文章

java通过maven导入本地jar包的三种方式

一、引入lib下加载&#xff08;加载过后打包&#xff0c;以后再次使用不用再次导入&#xff09; 首先创建一个用于创建jar包的项目&#xff0c;并测试能否成功运行 讲项目打包 在需要引入的项目中创建lib目录 并把刚才打包的jar复制进去 通过dependency引入jar包 groupId、art…

Hive-Sql复杂面试题

参考链接&#xff1a;hive sql面试题及答案 - 知乎 1、编写sql实现每个用户截止到每月为止的最大单月访问次数和累计到该月的总访问次数 数据&#xff1a; userid,month,visits A,2015-01,5 A,2015-01,15 B,2015-01,5 A,2015-01,8 B,2015-01,25 A,2015-01,5 A,2015-02,4 A,20…

使用 code-server 搭建在线的 VS Code 编辑器

文章目录 前言安装体验后记 前言 VS Code 是一个非常流行的代码编辑器&#xff0c;安装各种拓展下也可以当作全功能的IDE使用。VS Code本身是基于Web方案构建的&#xff0c;完全可以搭建服务器&#xff0c;然后通过浏览器访问。事实上官方就是这么设计的。现在打开任何一个Git…

010Node.js自定义模块通过exports的使用,两种暴露的方法及区别(二)

module/request.js var obj{get:function(){console.log(从服务器获取数据);},post:function(){console.log(提交数据);} }exports.xxxxobj;//方法一 { xxxx: { get: [Function: get], post: [Function: post] } }//module.exportsobj;//方法二 //{ get: [Function: g…

2.3 iHRM人力资源 - 路由、左侧菜单栏、处理token失效、退出登录、修改密码

iHRM人力资源 - 处理token失效、退出登录、修改密码 文章目录 iHRM人力资源 - 处理token失效、退出登录、修改密码一、退出登录1.1 处理token失效1.2 调整下拉菜单1.3 退出登录 二、修改密码2.1 弹出层dialog2.2 表单结构2.3 表单校验2.4 表单提交 三、路由3.1 清理多余组件和路…

Flink CDC在阿里云DataWorks数据集成应用实践

摘要&#xff1a;本文整理自阿里云 DataWorks 数据集成团队的高级技术专家 王明亚&#xff08;云时&#xff09;老师在 Flink Forward Asia 2023 中数据集成专场的分享。内容主要为以下四部分&#xff1a; 阿里云 DataWorks 数据集成介绍基于 Flink CDC 数据集成新版引擎架构和…

为硬刚小米SU7,华为智界S7整出了「梅开二度」操作

如今国产中大型新能源轿车市场&#xff0c;在小米 SU7 加入后&#xff0c;可算彻底活了过来。 过去几年&#xff0c;咱们自主新能源品牌在 20-30 万元级轿车上发力明显不足&#xff0c;老牌车厂比亚迪汉几乎以一己之力扛起销量担当。 随着新能源汽车消费升级、竞争加剧&#x…

盲人安全导航技巧:科技赋能让出行更自如

作为一名资深记者&#xff0c;长期关注并报道无障碍领域的发展动态。今日&#xff0c;我将聚焦盲人安全导航技巧&#xff0c;探讨这一主题下科技如何赋能视障人士实现更为安全、独立的出行。一款融合了实时避障、拍照识别物体及场景功能的盲人出行辅助应用叫做蝙蝠避障&#xf…

4月16号总结

java学习 网络编程 1.网络分层 网络分层是将网络通信划分为不同的逻辑层次&#xff0c;每一层负责特定的功能&#xff0c;从而实现网络通信的模块化和标准化。常用的网络分层模型包括OSI&#xff08;开放系统互联&#xff09;模型和TCP/IP模型。 特点和作用&#xff1a; 分…

计算机网络的七层模型

序 OSl(Open System Interconnect)&#xff0c;即开放式系统互联。一般都叫OSI参考模型。在网络编程中最重要的模型就是OSI七层网络模型和TCP/IP四层网络模型 一、OSI七层参考模型以及功能概述 二、各层的具体职能以及实际应用 1.应用层&#xff1a; OSI参考模型中最接近用…

MathType安装导致的Word粘贴操作出现运行时错误‘53’:文件未找到:MathPage.WLL

MathType安装导致的Word粘贴操作出现运行时错误‘53’&#xff1a;文件未找到&#xff1a;MathPage.WLL 解决方案 1、确定自己电脑的位数&#xff1b; 2、右击MathType桌面图标&#xff0c;点击“打开文件所在位置”&#xff0c;然后找到MathPage.WLL &#xff0c;复制一份进行…

ES源码二:集群启动过程

命令行参数解析 Elasticsearch&#xff1a;在main里面创建了Elasticsearch实例&#xff0c;然后调用了main方法&#xff0c;这个main方法最终会调用到父类Command的main方法 这里做了几件事&#xff1a; 注册一个 ShutdownHook&#xff0c;其作用就是在系统关闭的时候捕获IO…

配置路由器实现互通

1.实验环境 实验用具包括两台路由器(或交换机)&#xff0c;一根双绞线缆&#xff0c;一台PC&#xff0c;一条Console 线缆。 2.需求描述 如图6.14 所示&#xff0c;将两台路由器的F0/0 接口相连&#xff0c;通过一台PC 连接设备的 Console 端口并配置P地址&#xff08;192.1…

基于栈求解迷宫的单条路径和所有路径

数据结构与算法课的一个实验&#xff0c;记录一下。 单纯想要了解利用栈求解迷宫的算法可以直接跳转到相应的小标题。 完整代码链接code_2024/mazeLab LeePlace_OUC/code - 码云 - 开源中国 (gitee.com) 文章目录 要求栈的实现MazeType类型的组织迷宫的初始化和销毁打印路径…

死磕GMSSL通信-java/Netty系列(二)

死磕GMSSL通信-java/Netty系列(二) 在上一篇文章中,我们探讨了如何利用C/C++实现国密通信。而本文将聚焦于Java环境下,特别是基于Netty框架,如何实现与国密系统的安全通信。为了确保新项目遵循最新的国密标准,我们将优先推荐使用GB/T 38636-2020(TLCP)协议。对于Java开…

python 如何使用windows系统自带的定时功能运行脚本

亲测此定时可以在电脑重启后&#xff0c;仍会自动运行 1.搜索栏搜索‘任务’&#xff0c;打开任务计划程序&#xff0c;点击创建任务 2.写一下任务名称和描述 3.选择触发器&#xff0c;点新建&#xff0c;可以创建定时计划 4.默认只有一次&#xff0c;每天&#xff0c;每月&am…

BackTrader 中文文档(二十七)

原文&#xff1a;www.backtrader.com/ 数据 - 多个时间框架 原文&#xff1a;www.backtrader.com/blog/posts/2015-08-24-data-multitimeframe/data-multitimeframe/ 有时&#xff0c;使用不同的时间框架进行投资决策&#xff1a; 周线用于评估趋势 每日执行进入 或者 5 分钟…

解决 MSYS2 Qt 6.7 默认 stylesheet 在 windows 11 下的显示故障

项目场景&#xff1a; MSYS2 升级到 Qt6.7.0&#xff0c;发现显示故障&#xff0c;所有Qt6程序以及 QtCreator的SpinBox都显示不全&#xff0c;Combox的底色不对。 问题描述 2024年4月1日&#xff0c;pacman升级MSYS2后&#xff0c;Qt6遇到风格错误。如果使用官方的 Qt onlin…

CSS设置内外边距

目录 内边距&#xff08;paddingj&#xff09;&#xff1a; 前言&#xff1a; 设置内边距&#xff1a; 外边距&#xff08;margin&#xff09;&#xff1a; 前言&#xff1a; 设置外边距&#xff1a; 补充(折叠)&#xff1a; 内边距&#xff08;padding&#xff09;&#…

【程序分享】bopcalc 程序:一种评估分子动力学模拟中键序参数的高效方法(二)

分享一篇使用一种评估键序参数的高效程序&#xff1a;bopcalc 。 感谢论文的原作者&#xff01; 主要内容 “ 我们提出了一种新颖、高效的方法来评估键序参数 (BOP)。我们的方法利用球谐函数和 Wigner 符号的特性来减少 BOP 表达式中的项数&#xff0c;并采用归一化关联勒让德…