源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
查看: 320|回复: 17

[心得技巧] css 样式加载的优先级使用经验分享

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2013-8-29 17:39:33 | 显示全部楼层 |阅读模式
使用!important可以改变优先级别为最高,其次是style对象,然后是id class tag ,另外,另外在同级样式按照申明的顺序后出现的样式具有高优先级。感兴趣的朋友可以了解下 昨天项目开发过程中,遇到一个样式加载优先级的问题。

定义了class,在页面最初加载的过程中是被识别出来了,当加载完毕后的一瞬间,样式像被重写了一样,定义好的margin-bottom不起作用了。控件因为没有这个样式就挤在了一起。

测试中FF和Chrome都是可以的,IE8有问题,但是用IE developer工具是可以看到这个margin-bottom被识别出来了,也没有被重定义。

问题比较怪异。

这个页面不是普通的结构,页面内容是异步生成的,而不是之前已经写好各种元素的普通页面。至于在加载完的一瞬间是被什么给重定义了还没有找到原因。现象是其中的挤在一起的表单元素随便点击一个,它所在的模块的所有表单都会加载margin-bottom样式,就不会再挤在一起。或者用IE developer工具,先把margin-bottom前面的勾点击为不选,然后再点击选中,这样页面上所有没有识别margin-bottom的表单元素都会正常加载这个样式。

但这肯定不是解决问题的办法,不能让客户看到这个问题,UI是最能打动用户的部分,也是最容易激怒用户的部分。

随后试了几种方法,专门写一个样式定义margin-bottom,而不是随着别的定义一起,不行;

加!important这种优先级很高的办法也不行;

直接写style优先级还不如!important,并且代码冗余太多,弊端更多,不行;

然后试了一个方法,script的方法,可行,代码如下:

复制代码代码如下:
<script type="text/javascript">
document.getElementByClassName("mar_b_10").style.margin-bottom="10px";
</script>

其实就是再声明一遍,跟class是同样的内容,浏览器就能识别了。JS控制的样式对象,document.getElementByClassName("mar_b_10").style.margin-bottom="10px";一般情况是JS控制的样式优先级高,因为往往DOM操作是在DOM树加载完毕之后。在DOM树加载完毕,这个时候我写了js进行重定义,就没有别的再对这次样式定义进行覆盖,结果就比较满意。

一般情况下:

[1位重要标志位] > [4位特殊性标志] > 声明先后顺序

!important > [ 内联样式 > ID选择器 > 类,属性,伪类 选择器 > 元素标签,伪元素 选择器 ]

使用!important可以改变优先级别为最高,其次是style对象,然后是id > class >tag ,另外,另外在同级样式按照申明的顺序后出现的样式具有高优先级。
回复

使用道具 举报

14

主题

1万

回帖

75

积分

注册会员

Rank: 2

积分
75
发表于 2022-12-12 07:55:08 | 显示全部楼层
还不错啊
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

124

积分

注册会员

Rank: 2

积分
124
发表于 2022-12-28 13:46:15 | 显示全部楼层
很不错的玩意
回复 支持 反对

使用道具 举报

7

主题

2万

回帖

288

积分

中级会员

Rank: 3Rank: 3

积分
288
发表于 2023-11-29 16:21:00 | 显示全部楼层
还可以不错
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-12-2 03:08:26 | 显示全部楼层
儿童服务绯闻绯闻绯闻
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

79

积分

注册会员

Rank: 2

积分
79
发表于 2024-3-2 07:31:53 | 显示全部楼层
很好,谢谢分享
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

68

积分

注册会员

Rank: 2

积分
68
发表于 2024-4-7 14:03:11 | 显示全部楼层
还有人在不。。。。。。。。。。啊
回复 支持 反对

使用道具 举报

3

主题

2万

回帖

301

积分

中级会员

Rank: 3Rank: 3

积分
301
发表于 2024-5-2 21:42:03 | 显示全部楼层
非常vbcbvcvbvcb
回复 支持 反对

使用道具 举报

7

主题

2万

回帖

288

积分

中级会员

Rank: 3Rank: 3

积分
288
发表于 2024-6-11 16:52:20 | 显示全部楼层
呵呵呵呵呵呵
回复 支持 反对

使用道具 举报

11

主题

1万

回帖

103

积分

注册会员

Rank: 2

积分
103
发表于 2024-6-21 07:04:22 | 显示全部楼层
哦哦哦ijhhsdj
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-24 01:09 , Processed in 0.078181 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表