之前给改版的一个学校里的站点突然提出要求,说需要将之前编辑的文章的字体大小全部改成默认值。
字体的控制无非有两种,一是font-size = 16 px;然后是。但是,之前发布的文章,文字的控制是由编辑器生成的,而根据css的“靠近优先原则”,我们无法通过外层定义字体控制来影响已发布的内容——编辑器生成的字体控制更靠近文字!
总不能一篇一篇的改吧,,想了想之后,发现只需要将上述两种字体控制,删掉 font-size 和 size即可,这样,编辑器生成的字体控制就失效了,而我们在外层定义的字体控制规则起作用了。
下面是两个跟文章储存相关的表的结构,其中pa_article储存的是文章的相关信息,而pa_articletext储存的则是文章内容,其中外键是pa_article中的articleid。
pa_article:
字段
类型
整理
属性
空
默认
额外
articleid
int(10)
UNSIGNED
否
无
auto_increment
sortid
int(10)
UNSIGNED
否
0
title
varchar(100)
gb2312_chinese_ci
否
source
varchar(50)
gb2312_chinese_ci
是
NULL
author
varchar(50)
gb2312_chinese_ci
是
NULL
contact
varchar(50)
gb2312_chinese_ci
是
NULL
description
text
gb2312_chinese_ci
否
无
views
int(10)
UNSIGNED
否
0
pa_articletext:
字段
类型
整理
属性
空
默认
额外
id
int(10)
UNSIGNED
否
无
auto_increment
subhead
varchar(100)
gb2312_chinese_ci
否
articleid
int(10)
UNSIGNED
否
0
articletext
longtext
gb2312_chinese_ci
否
无
displayorder
tinyint(3)
否
1
故最后去mysql控制台或者phpmyadmin里执行sql语句是:
UPDATE pa_articletext SET articletext = replace(articletext,"font-size","") WHERE articleid IN (SELECT articleid FROM pa_article WHERE sortid =1)
上面语句的意思是,将pa_articletext中的articletext字段的内容去除"font-size" 之后存回,而需要执行的条目则用IN语句标识在后面的SELECT中选出。
需要注意的是replace语句对大小写敏感,因此,除了去除"font-size",还要再运行一遍去除“FONT-SIZE”,同理去除“size”和“SIZE”。