前端两个经典bug

1、margin塌陷bug

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title>
</head>
<style>*{margin: 0;padding: 0;}.wrapper{margin-left: 100px;margin-top: 100px;width: 100px;height: 100px;background-color: blue;/* border-top: 1px solid red; //手法不专业,太残暴*/overflow:hidden; /*推荐方式*/}.content{margin-left: 50px;margin-top: 50px;width:50px;height: 50px;background-color: green;}</style>
<body><div class="wrapper"><div class="content"></div></div></body>
</html>

我想要的效果:content容器相对于父级下移。
        bug原因:
        1.wrapper容器已经有一个margin-top:100px;content也设置一个margin-top:50px;结果是不会产生效果。
        2.除非设置margin-top大于父级容器的这个值,才会看到效果,但父级容器随它一起下移了,就好像父级容器设置了这个值一样
        逃避方式1:——//手法不专业,太残暴,不推荐,产品经理(它的像素眼)也不会同意
        给父级容器加一个上边,border-top: 1px solid red;
        使得子容器能够看到父级的上边来下移。
        逃避方式2:触发BFC,让特定的盒子遵循另一套规则
        如何触发一个盒子的bfc

  •         poosition:absolute;//假如内容就是要摆在那,后面的内容跟随在它下面就不合适
  •         display:inline-block;//假如内容就不要独占一行时就不合适
  •         float:left/right;//假如需求
  •         overflow:hidden;//假如里面的内容就是想要溢出盒子的一部分就不合适

        但同时产生了新的问题,需要看需求是否可以配合这些代码使用。

2、magin合并bug

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title>
</head>
<style>*{margin: 0;padding: 0;}.box1{background-color: red;margin-right: 100px;}.box2{background-color: green;margin-left:100px;/* overflow: hidden; */}.demo1{background-color: red;}.demo2{background-color: green;}.bfc{overflow: hidden;}
</style>
<body><span class="box1">123</span><span class="box2">456</span><div class="bfc"><div class="demo1">1111</div></div><div class="bfc"><div class="demo2">2222</div></div> 
</body>
</html>

我想要的效果:box1容器和box2容器不共用magin设置的值。
        bug原因:
        1.box1的margin-right:100px和box2的margin-left:100px共用了100px的距离。
        2.两个容器,一个设置marign-bottom,一个设置margin-top也是这个问题。
        逃避方式1:也是触发BFC规则
        如果出现上下margin合并的话,在它们各自的外面再套一个触发了bfc规则的容器
        其实也不推荐,因为修复时添加了多余的html元素,改变了结构。尽量不改变HTML结构是原则。
        合并的bug,真正解决方式是不解决,只是采用用数学方式,在一个元素上设置margin-right或者margin-left
  
   

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

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

相关文章

[css] 请使用css3实现图片的平滑转换

[css] 请使用css3实现图片的平滑转换 以全局监听的方式通过 a 标签的描点进行 view 动态切换页面&#xff0c;只要把 a 标签带有 id 的 href 属性的值指到锚点&#xff0c;用 CSS3 的动画进行切换页面.个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易…

== vs === in Javascript

本文来自网易云社区作者&#xff1a;魏文庆如果你只想知道与的区别&#xff0c;请直接看总结&#xff0c;当然我更希望您能耐心看完全文。Javascript中用于相等比较的操作符有两个和。我们通常称为“等于”&#xff0c;而我们通常称为“严格等于”。本文将对和做详细说明。相对…

[css] 使用纯css能否监控到用户的一些信息?怎么实现?

[css] 使用纯css能否监控到用户的一些信息&#xff1f;怎么实现&#xff1f; 利用:active 伪类实现监控用户的点击 .button-1:active::after {content: url(./pixel.gif?actionclick&idbutton1);display: none; } .button-2:active::after {content: url(./pixel.gif?ac…

hive 动态分区实现 (hive-1.1.0)

hive 动态分区实现 &#xff08;hive-1.1.0&#xff09; 笔者使用的hive版本是hive-1.1.0 hive-1.1.0动态分区的默认实现是只有map没有reduce,通过执行计划就可以看出来。&#xff08;执行计划如下&#xff09; insert overwrite table public_t_par partition(delivery_dateke…

浏览器的组成

外壳shell&#xff1a;User Interface&#xff08;用户界面&#xff09;、Browser engine&#xff08;浏览器引擎&#xff09;、Networking&#xff08;网络&#xff09;、UI Backend&#xff08;UI 后端&#xff09;、Date Persistence&#xff08;数据持久化存储&#xff09;…

[css] css的加载会阻塞js运行吗?为什么?

[css] css的加载会阻塞js运行吗&#xff1f;为什么&#xff1f; 会阻塞js的执行&#xff0c;因为js可能会去获取或改变元素的样式&#xff0c;所以浏览为了不重复渲染&#xff0c; 等所有的css加载渲染完成后在执行js个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知…

JS基础知识点总结

NaN 与任何值相比较 都是false (包括它自己 如NaN NaN >false)&#xff0c;可以理解为它连自己的不认识parseInt("123abc") 计算机是从头到尾读字符串&#xff0c;如果不是数字就截断&#xff0c;直接返回parseFloat同理num 123.1456789 num.toFixed(3…

[css] css的加载会阻塞DOM树解析和渲染吗?为什么

[css] css的加载会阻塞DOM树解析和渲染吗&#xff1f;为什么 css的加载不会阻止DOM树的解析 css的加载会阻止DOM树的渲染&#xff0c;因为css的下载完成后解析成CSSOM与DOM生成渲染树后&#xff0c;页面才会渲染&#xff0c;绘制出来个人简介 我是歌谣&#xff0c;欢迎和大家…

0901

下拉刷新一万赞&#xff1a;https://github.com/scwang90/SmartRefreshLayout git上搜索&#xff1a;refreshLayouthttps://github.com/search?odesc&qrefreshLayout&sstars&typeRepositories SwipeRefreshLayout pullRefresh XRecyclerView转载于:https://www.cn…

jQuery Validate 前端校验

参考自&#xff1a;https://www.runoob.com/jquery/jquery-plugin-validate.html 建议&#xff1a;将引入的js&#xff0c;jQuery&#xff0c;css文件下载到自己的本地或者远程服务器 否则&#xff1a;如果您的网站使用了SSL证书请求的安全策略&#xff0c;注意引用的文件是否…

[css] 异步加载CSS的方式有哪些?

[css] 异步加载CSS的方式有哪些&#xff1f; 异步加载CSS 说到加载 CSS 这种事儿不是很简单吗&#xff1f;像这样咯&#xff1a; 这不就完事儿了嘛&#xff01; 这样是没错&#xff01;但是这样有问题啊——会阻塞渲染&#xff01;浏览器看到这个标签就会停下手里的活儿&…

Golang 垃圾回收机制

1. Golang GC 发展 Golang 从第一个版本以来&#xff0c;GC 一直是大家诟病最多的。但是每一个版本的发布基本都伴随着 GC 的改进。下面列出一些比较重要的改动。 v1.1 STWv1.3 Mark STW, Sweep 并行v1.5 三色标记法v1.8 hybrid write barrier2. GC 算法简介  这一小节介绍三…

Bootstrap FileInput(文件上传)中文API整理

下载地址、API和DOM地址&#xff08;英语好的小伙伴可以看看&#xff09; 下载地址&#xff1a;https://github.com/kartik-v/bootstrap-fileinput API文档 &#xff1a;http://plugins.krajee.com/file-input D E M O&#xff1a;http://plugins.krajee.com/file-input/demo …

[css] 举例说明如何从html元素继承box-sizing?

[css] 举例说明如何从html元素继承box-sizing&#xff1f; html{box-sizing:border-box;}*,*:before,*:after{box-sizing:inherit;}个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起…

Configutation读取properties文件信息

commons configuration可以很方便的访问配置文件和xml文件中的的内容。Commons Configuration 是为了提供对属性文件、XML文件、JNDI资源、来自JDBC Datasource数据的访问。 官方文档&#xff1a;http://commons.apache.org/proper/commons-configuration/ 我们研究configurati…

JavaScript 所有数据类型

JavaScript 所有数据类型 在 JavaScript 中有 5 种不同的数据类型&#xff1a; stringnumberbooleanobjectfunction 3 种对象类型&#xff1a; ObjectDateArray 2 个不包含任何值的数据类型&#xff1a; nullundefined 可以使用 typeof 操作符来查看 JavaScript 变量的数据…

[css] 使用css的attr()写一个类似a标签title的提示框

[css] 使用css的attr()写一个类似a标签title的提示框 .box{position:relative;}.box:hover{content: attr(data-title); display: inline-block;padding: 10px 14px;border: 1px solid #ddd;border-radius: 5px;position: absolute;top: -50px;left: -10px;}个人简介 我是歌…

JavaScript 严格模式(use strict)

使用 "use strict" 指令 "use strict" 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增。 它不是一条语句&#xff0c;但是是一个字面量表达式&#xff0c;在 JavaScript 旧版本中会被忽略。 "use strict" 的目的是指定代码在严格条件下执行。…

IO 概括

# 一、概览 Java 的 I/O 大概可以分成以下几类&#xff1a; - 磁盘操作&#xff1a;File- 字节操作&#xff1a;InputStream 和 OutputStream- 字符操作&#xff1a;Reader 和 Writer- 对象操作&#xff1a;Serializable- 网络操作&#xff1a;Socket- 新的输入/输出&#xff1…

JavaScript this 关键字

面向对象语言中 this 表示当前对象的一个引用。 但在 JavaScript 中 this 不是固定不变的&#xff0c;它会随着执行环境的改变而改变。 在方法中&#xff0c;this 表示该方法所属的对象。如果单独使用&#xff0c;this 表示全局对象。在函数中&#xff0c;this 表示全局对象。…