目录
安装配置自定义插件
需要在当前主题的 functions.php
中添加自定义代码,才能实现在文章中自定义 CSS
样式表,插件内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
/* 为特定文章添加特定css最简单的方式. */ /*添加自定义CSS的meta box*/ add_action('admin_menu', 'cwp_add_my_custom_css_meta_box'); /*保存自定义CSS的内容*/ add_action('save_post', 'cwp_save_my_custom_css'); /*将自定义CSS添加到特定文章(适用于Wordpress中文章、页面、自定义文章类型等)的头部*/ add_action('wp_head','cwp_insert_my_custom_css'); function cwp_add_my_custom_css_meta_box() { add_meta_box('my_custom_css', '自定义CSS', 'cwp_output_my_custom_css_input_fields', 'post', 'normal', 'high'); add_meta_box('my_custom_css', '自定义CSS', 'cwp_output_my_custom_css_input_fields', 'page', 'normal', 'high'); } function cwp_output_my_custom_css_input_fields() { global $post; echo '<input type="hidden" name="my_custom_css_noncename" id="my_custom_css_noncename" value="'.wp_create_nonce('custom-css').'" />'; echo '<textarea name="my_custom_css" id="my_custom_css" rows="5" cols="30" style="width:100%;">'.get_post_meta($post->ID,'_my_custom_css',true).'</textarea>'; } function cwp_save_my_custom_css($post_id) { if (!wp_verify_nonce($_POST['my_custom_css_noncename'], 'custom-css')) return $post_id; if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return $post_id; $my_custom_css = $_POST['my_custom_css']; update_post_meta($post_id, '_my_custom_css', $my_custom_css); } function cwp_insert_my_custom_css() { if (is_page() || is_single()) { if (have_posts()) : while (have_posts()) : the_post(); echo '<style type="text/css">'.get_post_meta(get_the_ID(), '_my_custom_css', true).'</style>'; endwhile; endif; rewind_posts(); } } |
添加完成之后,会在文章编辑页面的最下面,出现 CSS
编辑窗口,之后在这个窗口中添加 CSS
会被自动保存。
链入外部样式表
链入外部样式表是把样式表保存为一个样式表文件,然后在页面中link
标记链接到这个样式表文件,这个标记必须放到页面的区内,如下:
1 2 3 |
<head> <link rel="stylesheet" type="text/css" href="mystyle.css"> </head> |
上面这个例子表示浏览器从mystyle.css
文件中以文档格式读出定义的样式表。rel="stylesheet"
是指在页面中使用这个外部的样式表。 type="text/css"
是指文件的类型是样式表文本。href="mystyle.css"
是文件所在的位置。
一个外部样式表文件可以应用于多个页面。当你改变这个样式表文件时,所有页面的样式都随之而改变。在制作大量相同样式页面的网站时,非常有用,不仅减少了重复的工作量,而且有利于以后的修改、编辑,浏览时也减少了重复下载代码。
样式表文件可以用任何文本编辑器(例如:记事本)打开并编辑,一般样式表文件扩展名为.css
。内容是定义的样式表,不包含HTML标记,mystyle.css
这个文件的内容如下:
1 2 3 |
hr {color: sienna} p {margin-left: 20px} body {background-image: url("images/back40.gif")} |
(定义水平线的颜色为土黄;段落左边的空白边距为20象素;页面的背景图片为images目录下的back40.gif文件)
内部样式表
内部样式表是把样式表放到页面head
区里,这些定义的样式就应用到页面中了,样式表是用style
标记插入的,从下例中可以看出style
标记的用法:
1 2 3 4 5 6 7 |
<head> <style type="text/css"> hr {color: sienna} p {margin-left: 20px} body {background-image: url("images/back40.gif")} </style> </head> |
注意:有些低版本的浏览器不能识别style
标记,这意味着低版本的浏览器会忽略style
标记里的内容,并把style
标记里的内容以文本直接显示到页面上。为了避免这样的情况发生,我们用加HTML注释的方式(<!--注释-->)隐藏内容而不让它显示:
1 2 3 4 5 |
<head> <style type="text/css"> <!-- hr {color: sienna} p {margin-left: 20px} body {background-image: url("images/back40.gif")} --> </style> </head> |
导入外部样式表
导入外部样式表是指在内部样式表的style
里导入一个外部样式表,导入时用@import
,看下面这个实例:
1 2 3 4 5 |
<head> <style type=”text/css”> <!-- @import “mystyle.css” 其他样式表的声明 --> </style> </head> |
例中@import "mystyle.css"
表示导入mystyle.css
样式表,注意使用时外部样式表的路径。方法和链入样式表的方法很相似,但导入外部样式表输入方式更有优势。实质上它相当于存在内部样式表中的。 注意:导入外部样式表必须在样式表的开始部分,在其他内部样式表上面。
内嵌样式
内嵌样式是混合在HTML标记里使用的,用这种方法,可以很简单的对某个元素单独定义样式。内嵌样式的使用是直接将在HTML标记里加入style
参数。而style
参数的内容就是CSS的属性和值,如下例:
1 |
<div style="color: sienna; margin-left: 20px">这是一个段落</div> |
(这个段落颜色为土黄色,左边距为20象素) 在style
参数后面的引号里的内容相当于在样式表大括号里的内容。 注意:style
参数可以应用于任意BODY
内的元素(包括BODY
本身),除了BASEFONT
、PARAM
和SCRIPT
。
多重样式表的叠加
上一章里我们已经提到样式表的层叠顺序,这里我们讨论插入样式表的这几种方法的叠加,如果在同一个选择器上使用几个不同的样式表时,这个属性值将会叠加几个样式表,遇到冲突的地方会以最后定义的为准。例如,我们首先链入一个外部样式表,其中定义了h3
选择符的color
、text-alig
和font-size
属性:
1 |
h3 { color: red; text-align: left; font-size: 8pt } |
(标题3的文字颜色为红色;向左对齐;文字尺寸为8号字) 然后在内部样式表里也定义了h3选择符的text-align和font-size属性:
1 |
h3 { text-align: right; font-size: 20pt } |
(标题3文字向右对齐;尺寸为20号字) 那么这个页面叠加后的样式就是:
1 |
color: red; text-align: right; font-size: 20pt |
(文字颜色为红色;向右对齐;尺寸为20号字) 字体颜色从外部样式表里保留下来,而对齐方式和字体尺寸都有定义时,按照后定义的优先而依照内部样式表。 注意:依照后定义的优先,所以优先级最高的是内嵌样式,内部样式表高于导入外部样式表,链入的外部样式表和内部样式表之间是最后定义的优先级高。