CSS外边距

news2024/11/22 22:38:41

元素的外边距(margin)是围绕在元素边框以外(不包括边框)的空白区域,这片区域不受 background 属性的影响,始终是透明的。

为元素设置外边距

默认情况下如果不设置外边距属性,HTML 元素就是不会有外边距,但也有例外的情况,因为浏览器会为一些 HTML
元素设置默认的外边距,例如<p>元素。您可以使用下面的属性来为 HTML 元素设置外边距:

  • margin-top:设置元素上方的外边距;
  • margin-bottom:设置元素下方的外边距;
  • margin-right:设置元素右侧的外边距;
  • margin-left:设置元素左侧的外边距;
  • margin:外边距的简写属性,可以同时设置元素四个方向(上下左右)的外边距。

上述外边距属性的可选值如下表所示:

描述
auto由浏览器计算外边距的尺寸
length使用具体数值配合 px、cm 等单位来定义元素外边距的尺寸,可以为负值,默认值为 0px
%定义基于父元素的宽度百分比的外边距,可以为负值
inherit从父元素继承外边距属性的值

【示例】使用 margin-top、margin-bottom、margin-right、margin-left 几个属性分别设置元素四个方向上的外边距:

<!DOCTYPE html>

<html>

<head>

    <style>

        div.box-one {

            border: 1px solid red;

            display:inline-block;   /*将元素转换为行内元素*/

        }

        div.box-two {

            /*为了能更直观的看出效果,这里为元素设置上边框和背景色*/

            border: 1px solid black;

            background: #CFF;

            width: 200px;

            height: 80px;

            margin-top: 10px;

            margin-right: 1em;

            margin-left: 1cm;

        }

        div.box-three {

            /*为了能更直观的看出效果,这里为元素设置上边框和背景色*/

            border: 1px solid #CCC;

            background: #CCC;

            width: 180px;

            height: 100px;

            margin-top: 10px;

            margin-bottom: 1em;

            margin-right: 10px;

            margin-left: 1cm;

        }

    </style>

</head>

<body>

    <div class="box-one">

        <div class="box-two">

            margin-top: 10px;<br>

            margin-right: 1em;<br>

            margin-left: 1cm;

        </div>

        <div class="box-three">

            margin-top: 10px;<br>

            margin-bottom: 1em;<br>

            margin-right: 10px;<br>

            margin-left: 1cm;

        </div>

    </div>

</body>

</html>

运行结果如下图所示:

margin-top、margin-bottom、margin-right、margin-left
属性演示
图:margin-top、margin-bottom、margin-right、margin-left 属性演示

这里需要特别说明一下 margin 属性,与其它几个属性不同,margin 属性可以接受 1~4 个参数(参数之间使用空格分隔):

  • 如果提供四个参数,那么将按照上、右、下、左的顺序分别作用于元素四个方向的外边距;
  • 如果提供三个参数,那么第一个参数会作用在元素上方的外边距,第二个参数会作用在元素左右两侧的外边距,第三个参数则作用在元素下方的外边距;
  • 如果提供两个参数,那么第一个参数会作用在元素上方和下方的外边距,第二个参数会作用在元素的左右两侧的外边距;
  • 如果只提供一个参数,那么这个值将同时作用于元素上下左右四个方向的外边距。

【示例】使用 margin 属性为元素设置外边距:

<!DOCTYPE html>

<html>

<head>

    <style>

        div.box-one {

            border: 1px solid red;

            display:inline-block;   /*将元素转换为行内元素*/

        }

        div.box-two {

            /*为了能更直观的看出效果,这里为元素设置上边框和背景色*/

            border: 1px solid black;

            background: #CFF;

            width: 200px;

            height: 100px;

            margin: 10px 1em;

        }

        div.box-three {

            /*为了能更直观的看出效果,这里为元素设置上边框和背景色*/

            border: 1px solid #CCC;

            background: #CCC;

            width: 150px;

            height: 50px;

            margin: 10px 0px 1ex 1em;

        }

    </style>

</head>

<body>

    <div class="box-one">

        <div class="box-two">margin: 10px 1em;</div>

        <div class="box-three">margin: 10px 0px 1ex 1em;</div>

    </div>

</body>

</html>

运行结果如下图所示:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
图:margin 属性演示

外边距折叠

外边距折叠指的是相邻的两个或多个外边距会在垂直方向上发生合并,合并为一个外边距。关于外边距折叠有以下几点需要注意:

  • margin 折叠只发生在块级元素上;
  • 浮动元素的外边距不会与任何外边距发生折叠;
  • 设置了 overflow 属性且值不为 visible 的块级元素,将不会与它的子元素发生外边距折叠;
  • 绝对定位元素的外边距不与任何外边距发生折叠;
  • 根元素(例如<body>)的外边距不与其它任何外边距发生折叠。
  1. 在相邻的两个兄弟元素之间:
  • 如果相邻两个元素外边距的值都为正数,那么两个元素的实际间距为两个外边距中较大的那个;
  • 如果相邻两个元素外边距的值都为负数,那么两个元素的实际间距为两个外边距中较小的那个;
  • 如果相邻两个元素外边距的值一个为正数、一个为负数,那么两个元素之间的实际间距为两个外边距相加的和。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
图:相邻兄弟元素之间的外边距折叠

  1. 在父元素与其子元素之间:(注意:父元素不能定义边框和内边距,且父元素与子元素之间不能有其它元素)
  • 如果父元素与子元素外边距的值都为正数,那么折叠后的外边距为两个外边距中较大的那个;
  • 如果父元素与子元素外边距的值都为负数,那么折叠后的外边距为两个外边距中较小的那个;
  • 如果父元素与子元素外边距的值一个为正数、一个负数,那么折叠后的外边距为两个外边距相加的和。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
图:父元素与其子元素之间的外边距折叠

原文地址CSS外边距

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

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

相关文章

通信工程学习:什么是MAC媒体接入控制

MAC&#xff1a;媒体接入控制 MAC&#xff08;Medium Access Control&#xff09;&#xff0c;即媒体接入控制&#xff0c;是计算机网络中数据链路层的一个重要组成部分&#xff0c;负责协调多个发送和接收站点对一个共享传输媒体的占用。以下是关于MAC的详细解释&#xff1a; …

括号序列C++

题目&#xff1a; 样例解释&#xff1a; 如下几种方案是符合规范的&#xff1a; (**)*() (**(*)) (*(**)) (*)**() (*)(**) 思路&#xff1a; 首先肯定是区间dp&#xff0c;令 dpi,jdpi,j​ 表示从位置 ii 到位置 jj 一共的合法序列总情况数量。 但是不同的形态可能会有不同的转…

【开源项目】CException 为C语言提供简洁高效的异常处理机制

CException&#xff1a;为C语言提供简洁高效的异常处理机制 在C语言中进行异常处理并不像C中那样方便。为了实现高效的异常处理&#xff0c;很多开发者选择了CException&#xff0c;一个基于C标准库 setjmp 和 longjmp 的轻量级异常处理框架。本文将带你了解 CException 的特点…

【Power Query】M函数-List.Sum

M函数-List 列表求和 &#xff08;List.Sum&#xff09;&#xff1a;1&#xff09;横向求和2&#xff09;列求和★思路★</font>★实操★</font> 3&#xff09;求总和4&#xff09;求部分占总体的比重★横向★</font>★竖向★</font> 列表求和 &#x…

C++和OpenGL实现3D游戏编程【连载12】——游戏中音效的使用

1、游戏中音效的使用 前面我们实现了图片纹理的显示功能,是不是感觉到非常的简单。那么今天我们就继续说下游戏声音的实现。音效也是游戏的灵魂,只有搭配了美妙动听的音效以后,游戏才能令人耳目一新,与玩家产生良好的效果。 音效文件最常用的可分为两种,分别为.wav和.mp3…

基于SSM的线上旅行信息管理系统【附源码】

基于SSM的线上旅行信息管理系统&#xff08;源码L文说明文档&#xff09; 目录 4.1 系统概述 4.2 数据库E-R图设计 4.3 数据库表设计 5 系统的实现 5.1 管理员功能模块的实现 5.1.1管理员登录界面 5.1.2用户管理界面 5.1.3景点分类管理界面 5.1.4…

(最新已验证)stm32 + 新版 onenet +dht11+esp8266/01s + mqtt物联网(含微信小程序)上报温湿度和控制单片机(保姆级教程)

物联网实践教程&#xff1a;微信小程序结合OneNET平台MQTT实现STM32单片机远程智能控制 远程上报和接收数据——汇总 前言 之前在学校获得了一个新玩意&#xff1a;ESP-01sWIFI模块&#xff0c;去搜了一下这个小东西很有玩点&#xff0c;远程控制LED啥的&#xff0c;然后我就想…

【Linux】【操作】Linux操作集锦系列之七——Linux环境下如何查看CPU使用情况(利用率等)

&#x1f41a;作者简介&#xff1a;花神庙码农&#xff08;专注于Linux、WLAN、TCP/IP、Python等技术方向&#xff09;&#x1f433;博客主页&#xff1a;花神庙码农 &#xff0c;地址&#xff1a;https://blog.csdn.net/qxhgd&#x1f310;系列专栏&#xff1a;Linux技术&…

Air201资产定位模组LuatOS:录音播放录音功能的操作方法

一直有小伙伴们问&#xff0c;迷你小巧的合宙Air201虽然有很多优点&#xff0c;超低功耗、精准定位&#xff0c;那么它是否支持录音、播放录音功能&#xff1f; 那必须能&#xff01;高集成化设计的Air201自带了ES8311音频解码芯片&#xff08;Audio Codec&#xff09;及MIC麦…

Could not retrieve https://npm.taobao.org/mirrors/node/index.json. 报错解决

Could not retrieve https://npm.taobao.org/mirrors/node/index.json. 报错解决 1.问题原因及解约 今天使用nvm下载不同版本的nodejs的时候报错了 C:\Users\1> nvm list availableCould not retrieve https://npm.taobao.org/mirrors/node/index.json.提示无法检索地址&…

ARM Process state -- CPSR

Holds PE status and control information. 保存PE状态和控制信息。 N, bit [31] Negative condition flag. Set to bit[31] of the result of the last flag-setting instruction. If the result is regarded as a twos complement signed integer, then N is set to 1 if…

AtCoder ABC371 A-D题解

省流&#xff1a;赛场上不会 C。 比赛链接:ABC371 Problem A: Sol if 暴力判断即可。 Code #include <bits/stdc.h> using namespace std; int main(){char SAB,SAC,SBC;cin>>SAB>>SAC>>SBC;if(SAB> && SBC>)cout<<"b&…

【Unity踩坑】使用内购时获取Google Play license key

在Unity中使用了IAP&#xff08;内购&#xff09;后&#xff0c;需要设置Google Play license key。 这个key需要在Google Play Console中&#xff08;https://play.google.com/console&#xff09;&#xff0c;找到相应的应用&#xff0c;在左侧“创收设置”里可以找到license…

堆【数据结构C语言版】【 详解】

目录-笔记整理 一、思考二、堆概念与性质三、堆的构建、删除、添加1. 构建2. 删除3. 添加 四、复杂度分析4.1 时间复杂度4.2 空间复杂度 五、总结 一、思考 设计一种数据结构&#xff0c;来存放整数&#xff0c;要求三个接口&#xff1a; 1&#xff09;获取序列中的最值&#…

AI面试指南:AI工具总结评测,助力求职季

AI面试指南&#xff1a;AI工具总结评测&#xff0c;助力求职季 摘要&#xff1a; 在竞争激烈的AI领域秋招季&#xff0c;准备充分并借助高效工具是提升面试通过率的关键。本文主要介绍一些针对秋招的AI面试工具和学习资源&#xff0c;分为简历优化、面试助手、手撕代码练习三个…

Thinkphp/Laravel旅游景区预约系统的设计与实现

目录 技术栈和环境说明具体实现截图设计思路关键技术课题的重点和难点&#xff1a;框架介绍数据访问方式PHP核心代码部分展示代码目录结构解析系统测试详细视频演示源码获取 技术栈和环境说明 采用PHP语言开发&#xff0c;开发环境为phpstudy 开发工具notepad并使用MYSQL数据库…

ue4多个面重叠闪烁

描述&#xff1a;当多个面重叠的时候&#xff0c;出现闪烁。比如有三个面ABC&#xff0c;A在最底下&#xff0c;B在中间&#xff0c;C在最上面。 解决方案&#xff1a; 方案一&#xff1a; 方法&#xff1a;调整位置&#xff0c;A的Z为0&#xff0c;B的Z为0.01&#xff0c;C的…

2021、2022、2023年江苏省“领航杯”_CTF竞赛_MISC/WEB—部分WP

文章目录 一、前言工具及附件分享 二、MICS1、MICS-小明的困惑2、MICS-流量分析3、MISC-神奇的压缩4、MICS-SecertData5、MISC-我要这key有何用6、MICS-黑客流量分析7、MISC-女儿的秘密8、MICS-snow9、MICS-jsfuck 三、WEB1、WEB- ctf_xxe2、WEB- ctf_uuunserialize3、WEB-ctf_…

无心剑七绝《华夏中兴》

七绝华夏中兴 长空万里尽春声 治世群英喜纵横 一代雄才华夏梦 中兴日月照前程 2024年10月1日 平水韵八庚平韵 无心剑的七绝《华夏中兴》通过对自然景观和国家景象的描绘&#xff0c;展现了一种恢弘的气势和对未来的美好愿景。 意境开阔&#xff1a;首句“长空万里尽春声”以广阔…

SpringBoot2(Spring Boot 的Web开发 springMVC 请求处理 参数绑定 常用注解 数据传递 文件上传)

SpringBoot2&#xff08;Spring Boot 的Web开发 springMVC 请求处理 参数绑定 常用注解 数据传递 文件上传&#xff09; 一、Spring Boot的Web开发 1.静态资源映射规则 总结&#xff1a;只要静态资源放在类路径下&#xff1a; called /static (or /public or /resources or …