惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

腾讯CDC
Hacker News: Ask HN
Hacker News: Ask HN
S
Securelist
Security Latest
Security Latest
S
Schneier on Security
T
Threat Research - Cisco Blogs
Latest news
Latest news
Cyberwarzone
Cyberwarzone
A
Arctic Wolf
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
NISL@THU
NISL@THU
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
I
Intezer
T
The Exploit Database - CXSecurity.com
N
News and Events Feed by Topic
Simon Willison's Weblog
Simon Willison's Weblog
T
Tor Project blog
Blog — PlanetScale
Blog — PlanetScale
C
Cyber Attacks, Cyber Crime and Cyber Security
C
CERT Recently Published Vulnerability Notes
The Hacker News
The Hacker News
月光博客
月光博客
WordPress大学
WordPress大学
博客园 - 叶小钗
Hugging Face - Blog
Hugging Face - Blog
美团技术团队
量子位
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Cisco Blogs
博客园 - 三生石上(FineUI控件)
Google DeepMind News
Google DeepMind News
Project Zero
Project Zero
Webroot Blog
Webroot Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Application and Cybersecurity Blog
Application and Cybersecurity Blog
云风的 BLOG
云风的 BLOG
L
LINUX DO - 最新话题
Schneier on Security
Schneier on Security
Engineering at Meta
Engineering at Meta
www.infosecurity-magazine.com
www.infosecurity-magazine.com
aimingoo的专栏
aimingoo的专栏
D
Docker
有赞技术团队
有赞技术团队
Google DeepMind News
Google DeepMind News
宝玉的分享
宝玉的分享
T
Troy Hunt's Blog
L
Lohrmann on Cybersecurity
T
The Blog of Author Tim Ferriss
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
L
LangChain Blog

博客园 - fengyv

塑造职场影响力的五大法宝 怎样培养独挡一面的能力 数据结构 - 归并排序(merging sort) [分享]恼人的设计模式 Git使用总结 设计师整理的系统开发流程-简洁又有重点 JavaScript中的String对象 python高效解析日志入库 如何让js不产生冲突,避免全局变量的泛滥,合理运用命名空间 三层浅析及示例分析 C语言的代码内存布局详解 超级立方体小记 如何和项目经理沟通产品的交付? CentOS配置smaba与Windows共享文件 Javascript实现简单的下拉二级菜单 从测试员到测试负责人 项目团队中4种组员类型的相应管理方式 在软件项目管理中如何把时间估算的靠近真实值? 性能优化——算法优化
HTML CSS——margin和padding的学习
fengyv · 2014-06-15 · via 博客园 - fengyv

你在学习margin和padding的时候是不是懵了,——什么他娘的内边距,什么他娘的外边距。呵呵呵,刚开始我也有点不理解,后来通过查资料学习总算弄明白了,现在我来谈一下自己对margin和padding的理解:

        一、什么是边距

        CSS中的边距指的是当前元素border与周围其它元素border的距离(或者称为空间)。

       二、什么是内边距,什么是外边距

        代码2-1:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3.     <head>  
  4.         <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />  
  5.         <style type="text/css">  
  6.             body{  
  7.                 margin:0px;  
  8.             }  
  9.   
  10.             .test1{  
  11.                 width:150px;  
  12.                 height:150px;  
  13.                 border:6px solid red;  
  14.             }  
  15.   
  16.             .test2{  
  17.                 margin-top:40px;  
  18.                 padding-top:40px;  
  19.                 width:150px;  
  20.                 height:150px;  
  21.                 border:6px solid gray;  
  22.             }  
  23.   
  24.             .test2_son{  
  25.                 width:80px;  
  26.                 height:50px;  
  27.                 border:12px solid blue;  
  28.             }  
  29.         </style>  
  30.     </head>  
  31.     <body>  
  32.         <div class="test1">test1</div>  
  33.         <div class="test2">  
  34.             <div class="test2_son">test2_son</div>  
  35.         </div>  
  36.     </body>  
  37. </html>  


图01

        说明:图01中灰色地带是class值为test2的div的边框,它是有宽度的;

        ①、外边距:外边距指的是margin作用元素(这里是class值为test2的div)边框外延距离另一个元素边框外延(如果另一个元素和margin作用元素同级(这里是class值为test1的div))或内延(如果另一个元素是margin作用元素父级)的距离,如上图;

        ②、内边距:内边距指的是margin作用元素(这里是class值为test2的div)边框内延距离其子元素边框外延的距离,如上图;

        ③、内边距和外边距是针对于其作用的元素和其他元素来讲的,某一元素的内边距在另一个元素看来有可能是外边距,比如:class值为test2 div的内边距在class值为test2_test div元素看来就是外边距,所以上面代码也可以这样写:将class值为test2的div样式列表中“padding-top:40px;”去掉,class值为test2_test div元素添加“margin-top:40px;”——这样的效果和代码2-1是一样的;

        三、margin和padding的属性值

        ①、它们的默认值都是0;它们的属性值都可以为auto——margin作用的元素由浏览器计算外边距,padding作用的元素由浏览器计算内边距;都 可通过设定属性值为inherit而继承父元素边距——margin继承父元素外边距,padding继承父元素内边距,但由于inherit在任何的版 本的 Internet Explorer (包括 IE8)都不支持,所以也就没有学习的必要了。

        ②、margin允许指定负的外边距值,不过使用时要小心;padding不允许指定负边距值;

        ③、margin和padding的属性值都可以有1个、2个、3个和4个:

                a、margin有4个属性值(例如margin:10px 5px 15px 20px;), 其含义是:上外边距10px、右外边距5px、下外边距15px、左外边距20px;

                      padding有4个属性值(例如padding:10px 5px 15px 20px;),其含义是:上内边距10px、右内边距5px、下内边距15px、左内边距20px;

                      总结:无论是margin还是padding,如果有4个属性值,那么它们的作用方向顺时针  依次为上、右、下、左;

                b、margin有3个属性值(例如margin:10px 5px 15px ;), 其含义是:上外边距10px、右外边距和左外边距5px、下外边距15px;

                      padding有3个属性值(例如padding:10px 5px 15px;),其含义是:上内边距10px、右内边距和左内边距5px、下内边距15px;

                      总结:无论是margin还是padding,如果有3个属性值,那么它们的作用方向顺时针  依次为上、右左、下;

                c、margin有2个属性值(例如margin:10px 5px;), 其含义是:上外边距和下外边距10px、右外边距和左外边距5px;

                      padding有2个属性值(例如padding:10px 5px;),其含义是:上内边距和下内边距10px、右内边距和左内边距5px;

                      总结:无论是margin还是padding,如果有2个属性值,那么它们的作用方向顺时针  依次为上下、右左;

                d、margin有1个属性值(例如margin:10px;), 其含义是:4 个外边距都是 10px;

                      padding有1个属性值(例如padding:10px;),其含义是:4 个内边距都是 10px;

                      总结:无论是margin还是padding,如果有1个属性值,那么它们的边距值都是相等的;