[技术] 如何正确食用cnblogs的CSS定制
用过cnblogs的估计都知道cnblogs提供了相对比较开放的个性化选项,其中最为突出的估计就是页面CSS定制了.但是没学过Web前端的人可能并不会用这个东西...
所以我打算在此分享一些定制CSS过程中使用的奇技淫巧一些方法来帮助大家定制blog qwq
以后如果想到新的主意或者更好的表述的话估计还会回来更新一波...本博文不定期更新吧w
博主并非专业Web开发,所以可能有些语言不够严谨或者不够准确还请谅解qwq
如果有表意模糊的地方也欢迎留言qwq
1.何谓CSS
CSS,即层叠样式表,可以被认为是HTML的扩充,用于给HTML里结构化的内容指定显示方式,比如字体/背景/大小/间距/特殊效果/过渡效果等.
Wikipedia中的概述如下:
层叠样式表(英语:Cascading Style Sheets,简写 CSS),又称串样式列表、级联样式表、串接样式表、层叠样式表、階層式樣式表,一种用来为结构化文档(如 HTML 文档或 XML 应用)添加样式(字体、间距和颜色等)的计算机语言,由 W3C 定义和维护。
CSS可以使HTML中仅包含结构信息而不必纠结如何显示,也可以像常量和函数一样做到将信息集中在一处使得修改更方便.这也就是我们自定义CSS的工作原理.
网页的读者和作者都可以使用CSS来决定文件的颜色、字体、排版等显示特性。CSS 最主要的目的是将文件的内容与显示分隔开来。
所以cnblogs提供的CSS定制其实算深度定制通道了(当然自己搭blog除外了233)
由于CSS语法体系相对也比较大,这里除了部分用到的属性之外不再仔细介绍.详细内容可以自行参考W3School的CSS教程
一般来讲我们只需了解基本语法/边框/字体/背景设置就可以进行基础的个性化了.
定制blog首先需要参考HTML中的结构信息,而这是cnblogs生成的,但是不同主题方案的结构与自定义空间并不一样,有些可以很容易地个性化,而有些就基本不可调整.
个人认为一般SimpleMemory主题是最容易进行定制的.一般越是简洁的主题定制空间越大.
下文将以SimpleMemory主题模板为例来进行演示.其他模板主题大同小异,只要善用浏览器的开发功能就可以取得很好的效果.
2. 定制中的有力工具:浏览器
如果你担心你没有Web开发环境,没有关系,你的浏览器其实在这种时候就是最好的IDE.比如Chrome浏览器中的"审查元素"功能(在新版Chrome中这个选项似乎更名了qwq)可以帮助你快速定位想要修改显示样式的元素位置并显示该元素所引用的CSS内容来进行修改.而且浏览器中的开发者工具大都能实时显示修改内容来进行一些细致的调整.
下文将以Chrome为例,其他浏览器一般都有类似的开发者工具或者页面编辑模块.
3. 背景更改
最基础的定制可能就是修改背景了吧,但是CSS需要引用Internet上的图片文件,这时需要先找到一个靠谱的图床或者干脆传到cnblogs相册里.然后对上传好的图片获取URL.
然后我们可以按下F12打开浏览器的开发者工具,定位到body元素的样式表,原版CSS中只有 background-color 一个背景相关的属性.我们可以将它改成 background-image 属性或者直接使用 background 属性来修改,比如改成如下内容:
background: url(http://images.cnblogs.com/cnblogs_com/someone/something.png) fixed;
url中填上传好的图片的URL,最后的值 fixed 表示图片固定,不随网页的滚动而移动.也可以选择不固定图片.
4. Blog主要内容的透明度设置
我们设置了背景图之后可能会发现: WTF我的背景图整个被Blog主体给挡住了啊QAQ
很多主题的主体内容都是不透明的,这时我们需要手动进行一些调整.
首先审查元素定位到整个主体内容框,将原版CSS中的 rgb 颜色或者十六进制颜色代码改为 rgba 颜色.这时我们就可以加一个Alpha值,代表元素的不透明度.
如果背景图对比度很高的话不建议将透明度调整得过低,否则极有可能影响博文的可读性.
如果想调整透明度的话一般要将页面上的可显示内容全部设置好透明度,这时就到了考验耐心的时候了233不断观察然后将自己所不满意的元素审查元素然后更改对应样式即可.
参考数据:博主的主体部分的Alpha值为0.8左右,其他需要一定程度突出显示的元素的Alpha值为0.3左右.
5. SimpleMemory侧边栏模块的标题样式设置
SimpleMemory主题的侧边栏模块标题都只是空荡荡的一串文本,我们可以对其设置Padding/Margin/Border.比如博主右侧的侧边栏就进行了一些自定义设置.代码如下:
6. 字体设置
我们有时候可能会想更改博客中一些文本的字体比如更改不同等级标题的字体和文本的字体,这时依然可以通过审查元素找到对应的样式.
CSS中一般不指定字体,而是指定字体家族(Font Family),也就是指定字体大致的显示类型,具体使用哪种字体实际上由用户的情况决定.
需要注意超过一个单词的Font Family需要用引号引起来.
字体大小由 font-size 属性设置,按需调整就可以.还有字体阴影属性 font-shadow 等很多,具体参考W3School好了w
7. 从他人博客中"借鉴"CSS
当你懒得自己调整然而又看见某人的Blog全部(或其中一部分元素)看起来定制得非常合你口味,可以有两种方式获取TA的自定义CSS:
1.打开浏览器开发工具,在所有源中查找一个文件名为TA的UID的CSS文件
2.将网页全部另存后在保存的除HTML外的其他源中查找上述CSS文件
打开之后就可以结合自己在HTML结构中的查找结果来定位到自己需要的样式并放在Blog设置中了.
读书人的事怎么能叫偷嘛
UPD: 可能有些博主使用了一些许可协议来保护博客内容, 这时就不能随便"借鉴"了因为博主可能有权查你水表...比如本人使用的CC-BY-NC-SA 4.0许可协议
附: 各种其他可能用到的属性
摘自http://www.w3school.com.cn/cssref/index.asp
CSS3 动画属性(Animation)
属性 描述 CSS @keyframes 规定动画。 3 animation 所有动画属性的简写属性,除了 animation-play-state 属性。 3 animation-name 规定 @keyframes 动画的名称。 3 animation-duration 规定动画完成一个周期所花费的秒或毫秒。 3 animation-timing-function 规定动画的速度曲线。 3 animation-delay 规定动画何时开始。 3 animation-iteration-count 规定动画被播放的次数。 3 animation-direction 规定动画是否在下一周期逆向地播放。 3 animation-play-state 规定动画是否正在运行或暂停。 3 animation-fill-mode 规定对象动画时间之外的状态。 3 CSS 背景属性(Background)
属性 描述 CSS background 在一个声明中设置所有的背景属性。 1 background-attachment 设置背景图像是否固定或者随着页面的其余部分滚动。 1 background-color 设置元素的背景颜色。 1 background-image 设置元素的背景图像。 1 background-position 设置背景图像的开始位置。 1 background-repeat 设置是否及如何重复背景图像。 1 background-clip 规定背景的绘制区域。 3 background-origin 规定背景图片的定位区域。 3 background-size 规定背景图片的尺寸。 3 CSS 边框属性(Border 和 Outline)
Box 属性
属性 描述 CSS overflow-x 如果内容溢出了元素内容区域,是否对内容的左/右边缘进行裁剪。 3 overflow-y 如果内容溢出了元素内容区域,是否对内容的上/下边缘进行裁剪。 3 overflow-style 规定溢出元素的首选滚动方法。 3 rotation 围绕由 rotation-point 属性定义的点对元素进行旋转。 3 rotation-point 定义距离上左边框边缘的偏移点。 3 Color 属性
属性 描述 CSS color-profile 允许使用源的颜色配置文件的默认以外的规范。 3 opacity 规定书签的级别。 3 rendering-intent 允许使用颜色配置文件渲染意图的默认以外的规范。 3 Content for Paged Media 属性
属性 描述 CSS bookmark-label 规定书签的标记。 3 bookmark-level 规定书签的级别。 3 bookmark-target 规定书签链接的目标。 3 float-offset 将元素放在 float 属性通常放置的位置的相反方向。 3 hyphenate-after 规定连字单词中连字符之后的最小字符数。 3 hyphenate-before 规定连字单词中连字符之前的最小字符数。 3 hyphenate-character 规定当发生断字时显示的字符串。 3 hyphenate-lines 指示元素中连续断字连线的最大数。 3 hyphenate-resource 规定帮助浏览器确定断字点的外部资源(逗号分隔的列表)。 3 hyphens 设置如何对单词进行拆分,以改善段落的布局。 3 image-resolution 规定图像的正确分辨率。 3 marks 向文档添加裁切标记或十字标记。 3 string-set 3 CSS 尺寸属性(Dimension)
属性 描述 CSS height 设置元素高度。 1 max-height 设置元素的最大高度。 2 max-width 设置元素的最大宽度。 2 min-height 设置元素的最小高度。 2 min-width 设置元素的最小宽度。 2 width 设置元素的宽度。 1 可伸缩框属性(Flexible Box)
属性 描述 CSS box-align 规定如何对齐框的子元素。 3 box-direction 规定框的子元素的显示方向。 3 box-flex 规定框的子元素是否可伸缩。 3 box-flex-group 将可伸缩元素分配到柔性分组。 3 box-lines 规定当超出父元素框的空间时,是否换行显示。 3 box-ordinal-group 规定框的子元素的显示次序。 3 box-orient 规定框的子元素是否应水平或垂直排列。 3 box-pack 规定水平框中的水平位置或者垂直框中的垂直位置。 3 CSS 字体属性(Font)
属性 描述 CSS font 在一个声明中设置所有字体属性。 1 font-family 规定文本的字体系列。 1 font-size 规定文本的字体尺寸。 1 font-size-adjust 为元素规定 aspect 值。 2 font-stretch 收缩或拉伸当前的字体系列。 2 font-style 规定文本的字体样式。 1 font-variant 规定是否以小型大写字母的字体显示文本。 1 font-weight 规定字体的粗细。 1 内容生成(Generated Content)
属性 描述 CSS content 与 :before 以及 :after 伪元素配合使用,来插入生成内容。 2 counter-increment 递增或递减一个或多个计数器。 2 counter-reset 创建或重置一个或多个计数器。 2 quotes 设置嵌套引用的引号类型。 2 crop 允许被替换元素仅仅是对象的矩形区域,而不是整个对象。 3 move-to 从流中删除元素,然后在文档中后面的点上重新插入。 3 page-policy 确定元素基于页面的 occurrence 应用于计数器还是字符串值。 3 Grid 属性
属性 描述 CSS grid-columns 规定网格中每个列的宽度。 3 grid-rows 规定网格中每个列的高度。 3 Hyperlink 属性
属性 描述 CSS target 简写属性,设置target-name、target-new以及target-position属性。 3 target-name 规定在何处打开链接(链接的目标)。 3 target-new 规定目标链接在新窗口还是在已有窗口的新标签页中打开。 3 target-position 规定在何处放置新的目标链接。 3 CSS 列表属性(List)
属性 描述 CSS list-style 在一个声明中设置所有的列表属性。 1 list-style-image 将图象设置为列表项标记。 1 list-style-position 设置列表项标记的放置位置。 1 list-style-type 设置列表项标记的类型。 1 marker-offset 2 CSS 外边距属性(Margin)
属性 描述 CSS margin 在一个声明中设置所有外边距属性。 1 margin-bottom 设置元素的下外边距。 1 margin-left 设置元素的左外边距。 1 margin-right 设置元素的右外边距。 1 margin-top 设置元素的上外边距。 1 Marquee 属性
属性 描述 CSS marquee-direction 设置移动内容的方向。 3 marquee-play-count 设置内容移动多少次。 3 marquee-speed 设置内容滚动得多快。 3 marquee-style 设置移动内容的样式。 3 多列属性(Multi-column)
属性 描述 CSS column-count 规定元素应该被分隔的列数。 3 column-fill 规定如何填充列。 3 column-gap 规定列之间的间隔。 3 column-rule 设置所有 column-rule-* 属性的简写属性。 3 column-rule-color 规定列之间规则的颜色。 3 column-rule-style 规定列之间规则的样式。 3 column-rule-width 规定列之间规则的宽度。 3 column-span 规定元素应该横跨的列数。 3 column-width 规定列的宽度。 3 columns 规定设置 column-width 和 column-count 的简写属性。 3 CSS 内边距属性(Padding)
属性 描述 CSS padding 在一个声明中设置所有内边距属性。 1 padding-bottom 设置元素的下内边距。 1 padding-left 设置元素的左内边距。 1 padding-right 设置元素的右内边距。 1 padding-top 设置元素的上内边距。 1 Paged Media 属性
属性 描述 CSS fit 示意如何对width和height属性均不是auto的被替换元素进行缩放。 3 fit-position 定义盒内对象的对齐方式。 3 image-orientation 规定用户代理应用于图像的顺时针方向旋转。 3 page 规定元素应该被显示的页面特定类型。 3 size 规定页面内容包含框的尺寸和方向。 3 CSS 定位属性(Positioning)
属性 描述 CSS bottom 设置定位元素下外边距边界与其包含块下边界之间的偏移。 2 clear 规定元素的哪一侧不允许其他浮动元素。 1 clip 剪裁绝对定位元素。 2 cursor 规定要显示的光标的类型(形状)。 2 display 规定元素应该生成的框的类型。 1 float 规定框是否应该浮动。 1 left 设置定位元素左外边距边界与其包含块左边界之间的偏移。 2 overflow 规定当内容溢出元素框时发生的事情。 2 position 规定元素的定位类型。 2 right 设置定位元素右外边距边界与其包含块右边界之间的偏移。 2 top 设置定位元素的上外边距边界与其包含块上边界之间的偏移。 2 vertical-align 设置元素的垂直对齐方式。 1 visibility 规定元素是否可见。 2 z-index 设置元素的堆叠顺序。 2 CSS 打印属性(Print)
属性 描述 CSS orphans 设置当元素内部发生分页时必须在页面底部保留的最少行数。 2 page-break-after 设置元素后的分页行为。 2 page-break-before 设置元素前的分页行为。 2 page-break-inside 设置元素内部的分页行为。 2 widows 设置当元素内部发生分页时必须在页面顶部保留的最少行数。 2 CSS 表格属性(Table)
属性 描述 CSS border-collapse 规定是否合并表格边框。 2 border-spacing 规定相邻单元格边框之间的距离。 2 caption-side 规定表格标题的位置。 2 empty-cells 规定是否显示表格中的空单元格上的边框和背景。 2 table-layout 设置用于表格的布局算法。 2 CSS 文本属性(Text)
属性 描述 CSS color 设置文本的颜色。 1 direction 规定文本的方向 / 书写方向。 2 letter-spacing 设置字符间距。 1 line-height 设置行高。 1 text-align 规定文本的水平对齐方式。 1 text-decoration 规定添加到文本的装饰效果。 1 text-indent 规定文本块首行的缩进。 1 text-shadow 规定添加到文本的阴影效果。 2 text-transform 控制文本的大小写。 1 unicode-bidi 设置文本方向。 2 white-space 规定如何处理元素中的空白。 1 word-spacing 设置单词间距。 1 hanging-punctuation 规定标点字符是否位于线框之外。 3 punctuation-trim 规定是否对标点字符进行修剪。 3 text-align-last 设置如何对齐最后一行或紧挨着强制换行符之前的行。 3 text-emphasis 向元素的文本应用重点标记以及重点标记的前景色。 3 text-justify 规定当 text-align 设置为 "justify" 时所使用的对齐方法。 3 text-outline 规定文本的轮廓。 3 text-overflow 规定当文本溢出包含元素时发生的事情。 3 text-shadow 向文本添加阴影。 3 text-wrap 规定文本的换行规则。 3 word-break 规定非中日韩文本的换行规则。 3 word-wrap 允许对长的不可分割的单词进行分割并换行到下一行。 3 2D/3D 转换属性(Transform)
属性 描述 CSS transform 向元素应用 2D 或 3D 转换。 3 transform-origin 允许你改变被转换元素的位置。 3 transform-style 规定被嵌套元素如何在 3D 空间中显示。 3 perspective 规定 3D 元素的透视效果。 3 perspective-origin 规定 3D 元素的底部位置。 3 backface-visibility 定义元素在不面对屏幕时是否可见。 3 过渡属性(Transition)
属性 描述 CSS transition 简写属性,用于在一个属性中设置四个过渡属性。 3 transition-property 规定应用过渡的 CSS 属性的名称。 3 transition-duration 定义过渡效果花费的时间。 3 transition-timing-function 规定过渡效果的时间曲线。 3 transition-delay 规定过渡效果何时开始。 3 用户界面属性(User-interface)
属性 描述 CSS appearance 允许您将元素设置为标准用户界面元素的外观 3 box-sizing 允许您以确切的方式定义适应某个区域的具体内容。 3 icon 为创作者提供使用图标化等价物来设置元素样式的能力。 3 nav-down 规定在使用 arrow-down 导航键时向何处导航。 3 nav-index 设置元素的 tab 键控制次序。 3 nav-left 规定在使用 arrow-left 导航键时向何处导航。 3 nav-right 规定在使用 arrow-right 导航键时向何处导航。 3 nav-up 规定在使用 arrow-up 导航键时向何处导航。 3 outline-offset 对轮廓进行偏移,并在超出边框边缘的位置绘制轮廓。 3 resize 规定是否可由用户对元素的尺寸进行调整。 3
最后祝大家的Blog颜值++,访问++ (^_^)
(然后就这么水了一篇博(逃))
好像款式不是默认的呀..?