CSS样式覆盖
覆盖
今天下午想给博客配个在线Markdown的小工具, 按照教程搭配完了, 结果发现这行高简直欺骗感情.

明明这位博主的在线Markdown和editormd官方的行距就是正常的, 怎么到我这就开始变宽了呢?
在一轮乱搞editormd.css
之后, 发现仍然不能改变前端显示的效果. 用Chrome按下F12看, 发现右侧很多css的样式都被线划掉了.

按过F12查看元素实际大小, 发现就是padding和margin出现了问题, 导致行距很宽. 我上网查了很久, 不知道到底是哪个css覆盖了它.
解决
我把那位博主的css文件都下载下来, 发现matery.css
的大小和我本地的大小居然不一样! 比对后果然发现了端倪. 他将直接将matery.css
中同名的pre
中margin
和padding
后的!important
注释掉了.
其实只要按照关键词进行查找, 找到同名的所有样式, 没被线划掉的就是没被覆盖的样式, 根据后面的文件位置就能快速定位. 样式被覆盖的原因是优先级不够.
优先级规则
内容来自CSDN, 我这里只遇到过前三个.
- 优先级就近原则, 同权重的样式谁离标签内容近谁就优先级高.
- 载入样式以最后载入的定位为准(覆盖)
- !important优先级最高.
- 按照类别进行区分:
- 内联, 如style=””——1000
- id, 如#content——100
- 类、伪类和属性选择器, 如.content——10,
- 标签选择器和伪元素选择器, 如div, p——1
- 通配符、子选择器和相邻选择器, 如*, >, +——0