最近学习制作 Discuz 模板,遇到不少问题,不过都一个个的解决了。今天的问题是论坛登陆框里边的文字颜色是如何改变的。因为 Discuz 论坛控制 CSS 的不止一个地方。有 common.css, module.css ,还有后台的选项也关系着 CSS。所以很多时候,你不知道哪个优先级最高。改CSS也不起作用。今天碰到这个首页登录信息那里的颜色就是非常难改的。

自己模板因为有背景是暗色的,所以需要把登陆信息的字体改成白色,如图所示:

login_font_color_1

方法1:

首先分析了一下,发现在默认模板的 common.css 里边有这么一段代码

1
.ftid a { display: block; overflow: hidden; padding: 0 17px 0 4px; height: 21px; line-height: 21px; text-decoration: none !important; font-size: 12px; font-weight: 400; color: {TABLETEXT} !important; border: 1px solid; border-color: {INPUTBORDERDARKCOLOR} {INPUTBORDER} {INPUTBORDER} {INPUTBORDERDARKCOLOR}; background: {WRAPBG} url({IMGDIR}/newarow.gif) no-repeat 100% 0; }

看到 color: {TABLETEXT} !important 这句话了吗?这句话的意思就是,不论你在 extend_common.css 怎么修改,他都会载入默认模板里边的 common.css 里边的 color 属性。因为后边加了个 !important ,所以他的优先级最大。而这个 {TABLETEXT} 也没有指明具体颜色啊?其实,这个颜色已经在后台设置好了,去后台-界面-风格管理-编辑,找到 {TABLETEXT} 的颜色,进行编辑,然后你会看到,其他地方的颜色也被改变了。而我们只想改变登陆区域的字体颜色。怎么办呢?后台是指望不上了,只能动手改代码了。

其实,明白了优先级这个问题,我们就可以在自己模板的 extend_common.css 里边改颜色了。(extend_common.css 为自己模板 css)

1
.ftid a {color:white !important;}

同样加个 !important 后缀,就可以提高我们的css属性优先级。这段代码只是修改 “用户名” 这个字段的颜色,其他同理,大家自己找一下吧。
PS:另外,直接改 default\common\common.css 这个css也可以。不过 Forece 劝大家最好不要改默认的。因为,如果你改了默认文件,以后想找个什么CSS的属性,就更加难以判断CSS的位置了。

最后放上完美版的截图一枚:

login_font_color_2

方法2:

另外,网上还有一篇文章是这么搞的,直接改 html 文件,用嵌入式css来改变文字颜色属性。因为是直接在html文件里动手,所以这个优先级就变成了最大的。
登录前的登录框模板文件是在 default\member\login_simple.htm

找到
账户:

1
<label for="ls_username" style="color:white">{lang account}</label>

密码:

1
<label for="ls_password"{if !$_G['setting']['autoidselect']} class="z psw_w"{/if} style="color:white">

自动登录:

1
<label for="ls_cookietime" style="color:white">

立即注册:

1
<a href="member.php?mod={$_G[setting][regname]}" class="xi2 xw1" style="color:white">

找回密码:

1
<a href="javascript:;" onclick="showWindow('login', 'member.php?mod=logging&action=login&viewlostpw=1')" style="color:white">{lang forgotpw}</a>

大家可以看到,在每段代码后边我都加了一个 style="color:white" ,这个就是直接在 Html 文件里嵌入 CSS 的方法,写上自己的颜色即可。不过,这种修改方法有个小问题。你会看到,所有颜色都变了,但是唯独用户名的颜色没变。这个问题 Forece 也还没研究透。不过凑巧找到了替代方法。那么就是到 后台-全局-站点功能-其他, 把启用登录自动选择帐号打开即可。