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

解决CSS定位错乱/疑难杂症的终极绝招==》从样式污染开始排查

我们接手他人或者第三方项目的时候,有时候会遇到一些莫名其妙的问题:

明明自己的样式写的没有问题,但是网页上却显示的乱七八糟的,或者效果完全出不来。

案例如下:

 这里只用了很典型的flex弹性布局,并没有很特殊的配置

 为什么会出现li元素img图片全部不能显示的问题呢,然后继续定位出现问题的img元素的样式:

 经过仔细查找,终于找到了问题的原因:来自轮播图的一个样式:

.scroll img {

 top: 0;

 left: 0

 }

 这个样式会将所有图片顶到左上角,而这个样式来自于轮播图,由于没有正确限制样式的影响范围,导致它扩散到其他元素中,所以图片就没法正常显示了。

这个就是样式污染造成的css布局问题。

解决办法:将污染的样式限制到合理的作用范围:

/* 此处是解决侧边栏划出菜单:li列表只能显示一张图片的问题注意样式污染问题:不能使用.scroll img,否则会出现样式污染,因为引入额外的定位,导致其他地方图片不能正常显示。
*/
/* 将该样式的作用范围限制在轮播图内,不要扩散到其他元素,污染它们的样式,造成显示问题 */
.scroll  #scroll  img { // 之前是.scroll imgwidth: 1226px;position: absolute;top: 0;left: 0;
}

再来看一个例子:

 从html结构来看,应该是a标签内部:图片和p标签各占一行,且文字在图片下方。

但是结果却是: p标签文字跑到了a标签的左上方。

现在看起来应该p标签的样式出了问题,然后继续定位p标签的样式:

 在这里发现了样式污染的来源:

#nav p {float: left;margin: 0 20px;
}

正是这个其他地方的p标签样式,扩散到这里来,导致文字显示错乱。

取消勾选该样式,显示就能正常

解决办法: 通过css标签选择器严格限制该样式的作用范围,问题得以解决。

 

总结: 如果出现了html元素定位错乱/显示不正常, 在自身代码写的没有问题的情况下,一定要通过chrome的开发者工具,重点观察:出问题的元素是否有:污染的样式渗入。

如果能够定位到样式污染源,正确限制该样式的作用范围,就能解决问题。

http://www.lryc.cn/news/165024.html

相关文章:

  • 【笔记】《C++性能优化指南》Ch3 测量性能
  • 2023大数据面试总结
  • udev自动创建设备节点的机制
  • 访问局域网内共享文件时报错0x80070043,找不到网络名
  • Java定时器
  • 科普js加密时出现的错误
  • MYSQL优化——B+树讲解
  • Rokid Jungle--Station pro
  • 如何实现微服务
  • MySQL如何进行增量备份与恢复?
  • 微服务框架
  • (matplotlib)如何让各个子图ax大小(宽度和高度)相等
  • python http 上传文件
  • IPO解读:Instacart曲折上市,业务模式如何持续“绚烂”?
  • 使用sql profile 稳定执行计划的案例
  • 海南大学金秋悦读《乡村振兴战略下传统村落文化旅游设计》2023新学年许少辉八一新书​
  • [N0wayback 2023春节红包题] happyGame python反编译
  • Redis 初识与入门
  • 【STM32】片上ADC的初步使用
  • esxi下实现ikuai相同的两个网卡,单独路由配置
  • Windows环境下Elasticsearch相关软件安装
  • 配置Jedis连接池
  • Windows 12 开源网页版
  • circleMidpoint(scrPt c, GLint r) 未定义的标识符,openGL第四章例子 ,画饼状图。
  • RKNN模型评估-性能评估和内存评估
  • window mysql-8.0.34 zip解压包安装
  • Mysql判断某个数据库中是否包含某个表,与pymysql工具函数
  • 快速掌握正则表达式
  • git: ‘lfs‘ is not a git command unclear
  • 代码随想录--哈希--两个数组的交集