当前位置: 首页 > news >正文

关于margin和padding的总结

总结一下:

要想实现如(图一)效果,(即一个div中的子元素与父元素有间距):

 

如果类名为.middle的父元素没有写border,则类名为firstChild的子元素设置margin-top,会导致父元素与相邻的top元素产生间距。

 

要想解决该问题,文章《用margin还是用padding》提出:

①类名为.middle的父元素加上border属性,但不足是加入border后会导致.middle超出2px,所以middle的高度还需要减去2px。

②类名为.middle的父元素不用加border,可以使用padding将子元素隔开。但不足之处也是需要将height减去padding的高度。

③文章《CSS设计模式之三权分立模式篇》提出解决问题②的方法是在子元素中使用padding属性,将margin、border、padding分开来写。

④文章《用margin还是用padding》指出③存在的问题:如果替换子元素的<div>,则相应的padding就失效了,所以建议对父元素使用padding。

综上所述,为了避免使用margin会在父元素没有设置border时产生间距混乱的问题,可以在子元素上设置padding,利大于弊!

转载于:https://www.cnblogs.com/xiaozhumaopao/p/5822726.html

相关文章:

  • 关于kafka发送消息过大导致的异常的解决方式
  • PHP利用Curl实现多线程抓取网页和下载文件
  • Java Logback教程
  • 石子合并[DP-N3]
  • log4j2定期生成和删除过期日志文件的配置
  • 使用netcat进行反弹链接的shellcode
  • mybatis 判断是否传入了某参数
  • sleep()和wait()区别
  • [LeetCode] NO. 387 First Unique Character in a String
  • Linux命令(网络)
  • 抽象工厂的一个范例
  • WebBrowser 和 Win Form 的关闭问题?
  • 蓝鸥Unity开发基础二——课时18 单例
  • 表示数值的字符串
  • 如何配置搜索功能
  • Apache的80端口被占用以及访问时报错403
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • Making An Indicator With Pure CSS
  • Object.assign方法不能实现深复制
  • react-native 安卓真机环境搭建
  • Vue.js源码(2):初探List Rendering
  • vue脚手架vue-cli
  • Vue小说阅读器(仿追书神器)
  • Vultr 教程目录
  • Web Storage相关
  • 订阅Forge Viewer所有的事件
  • 猴子数据域名防封接口降低小说被封的风险
  • 记录一下第一次使用npm
  • 山寨一个 Promise
  • 一个项目push到多个远程Git仓库
  • 关于Android全面屏虚拟导航栏的适配总结
  • ​第20课 在Android Native开发中加入新的C++类
  • #FPGA(基础知识)
  • #include<初见C语言之指针(5)>
  • #每日一题合集#牛客JZ23-JZ33
  • #微信小程序:微信小程序常见的配置传旨
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (TOJ2804)Even? Odd?
  • (分布式缓存)Redis分片集群
  • (蓝桥杯每日一题)love
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (转)h264中avc和flv数据的解析
  • (转)socket Aio demo
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .netcore 获取appsettings
  • [ vulhub漏洞复现篇 ] JBOSS AS 5.x/6.x反序列化远程代码执行漏洞CVE-2017-12149
  • [2010-8-30]
  • [AIGC] 如何建立和优化你的工作流?
  • [Angular] 笔记 6:ngStyle
  • [C++]类和对象(中)
  • [CC2642R1][VSCODE+Embedded IDE+IAR Build+Cortex-Debug] TI CC2642R1基于VsCode的开发环境
  • [HackMyVM]靶场Boxing
  • [HCTF 2018]WarmUp (代码审计)