Skip to main content

关于CSS在Blog中的应用(一)

CSS,Cascading Style Sheets(层叠样式表单)的简称,顾名思义,是一种设计网页样式的工具。借助CSS的强大功能,网页将在您丰富的想象力下千变万化。下面就几个方面谈一谈如何Blog中应用CSS满足要求。



1、CSS与Blog布局


对于每一个Blog模板(不管是什么类型的Blog系统),仔细分析一下它的页面代码,你可能得到类似这样的几部分:
































我们通常采用DIV元素来将这些结构定义出来
<div id="header"></div>页眉部分(作为一个大的容器)
<div id="siteinfo"></div>Blog信息(标志、名称、描述等)
<div id="search"></div>搜索框
<div id="navigation"></div>导航条(或者主菜单)
<div id="content"></div>主页面部分(作为容器)
<div id="posts"></div>Posts内容(title、正文、页脚等等)
<div id="comments"></div>评论部分
<div id="sidebar"></div>侧边栏(作为容器,包含Widgets,功能件等)
<div id="footer"></div>页脚(版权,相关声明等)

要特别强调的是这些不是布局,只是结构;我们在进行web设计时要基于这样一种思想:HTML只负责内容、框架,而CSS负责修饰、布局;也就是说要尽量发挥CSS样式语言的优势(至于具体那些好处可以参考这里)。


利用CSS对页面进行布局需要我们对block块元素(HTML块级元素属性说明)的结构有所了解,清楚CSS属性的修改对应到块元素(如DIV标签)的哪些变化。对于初学者与其反复实验解决这类问题,还不如先花点时间了解其原理。这里我们需要理解的最重要的概念之一是所谓的CSS“盒状模型”,它是大多数CSS布局与定位的基础。

通过下面的“盒子”模型,我们可以有一个清晰的认识,进而帮助我们设计出更佳的网页。
盒模型平面结构图
盒模型平面结构图
盒模型层次3D结构示意图
盒模型层次3D结构示意图
基于上面的模型,作以下说明



  1. 块元素的内容Content 位于中心位置;
  2. 块的边长width 和 height 的值不包括border的宽度;
  3. border为可见区域划分界限;
  4. padding 基于border的内侧边界向内延伸,不可见;
  5. margin 值可取正负数,且都基于border的外侧边界,不可见;
  6. 块元素实际所占的空间由margin决定(这并不等价于它看上去有多大面积)。

2、利用CSS实现导航


基于上面提到的思想(HTML只负责内容、框架,而CSS负责修饰、布局),我们进行导航的设计,可视部分代码如下:


<ul id="navigation">    // 和表格布局相比,这样的结构看上去清晰明了
<li><a >Home</a></li>
<li><a >Albums</a></li>
<li><a >Forum</a></li>
<li><a >Apps</a></li>
<li><a >Tips</a></li>
<li><a >About</a></li>
</ul>






左边是上面代码的显示效果,因为ul标签默认是block元素,所以每个项目都是另起一行排列的。

这样的显示效果是不符合导航条要求的,于是我们为其加上CSS代码进行调整修饰:

/* Navigation
---------------------------------------*/

#navigation {
width:500px;
background: #b70908 url(images/md_nav.gif);
background-repeat:repeat-x;
background-position:top;
height:47px;
margin-bottom:0px;
font-size: 1.0em;
font-weight:bold;}


#navigation ul {
list-style: none;
padding: 0px;
margin: 0px;}


#navigation li {
display: inline;
margin: 0px;}


#navigation li a {
height:32px;
padding-top: 15px;
color: #FFFFFF;
padding-right: 20px;
padding-left: 20px;
text-decoration: none;
float: left;
margin-right: 1px;
background: url(images/md_nav_split.gif) no-repeat right bottom;}

#navigation li a:hover {
background: url(images/md_nav_hover.gif) repeat-x left top;
}

下面是应用CSS后的效果:





通过上面的示例,我们可以看到CSS+<ul>设计导航的一些优点:结构清晰,内容与样式相独立,以后修改更新都非常方便。

Comments

Popular posts from this blog

Cloudera Hadoop 集群安装(ubuntu + CDH5.10)

前言 CDH是Cloudera公司的Hadoop发行版,基于稳定版本的Apache Hadoop构建,包含Hadoop,Spark,Hive,Hbase和一些工具等,并集成了很多补丁,可直接用于生产环境。通过Cloudera Manager可以简化hadoop各组件的部署和配置过程。 目前CDH对ubuntu支持的最高版本为14.04,因此不建议使用更高版本的ubuntu来部署CDH。 环境准备: 1.配置网络(所有节点) 修改hostname: $ sudo vi /etc/hostname cdh01 修改IP地址: $ sudo vi /etc/network/interfaces auto eth0 iface eth0 inet static         address 172.16.13.11         netmask 255.255.255.0         gateway 172.16.13.254 重启网络服务生效: $ sudo ifdown eth0 && sudo ifup eth0 修改ip与主机名的对应关系: $ sudo vi /etc/hosts 172.16.13.11 cdh01 172.16.13.12 cdh02 172.16.13.13 cdh03 2.配置SSH(所有节点) 启用root登陆(CDH5.10需要进行此步操作) $ sudo vi /etc/ssh/sshd_config #PermitRootLogin without-password PermitRootLogin yes $ sudo service ssh restart $ sudo passwd root 设置ssh无密码登陆 //在主节点上执行一路回车,生成无密码的密钥对 $ ssh-keygen -t rsa //将生成的密钥文件复制到其它节点 $ ssh-copy-id cdh02 $ ssh-copy-id cdh03 测试: 在主节点上ssh hadoop2,正常情况下,不需要密码就能直接登陆进去了。 3.安装Oracle JDK(所有节点) 运行CDH5必须使用Oracle的Jdk,需要Java 7及以上版本支持。 在Oracle的官网下载jdk包,解压到相应目录,例如/usr/java/jdk1.8.0_

Bitwarden 配置 Let’s Encrypt 证书

由于在内网环境部署的Bitwarden,不能通过安装脚本自动申请 Let’s Encrypt 的证书。 起初我用了一个自签名证书,发现特别不好使,虽然在firefox 跟 chrome 内核的浏览器上都能通过插件访问,但必须添加信任才行,特别是用Bitwarden Desktop 客户端连的时候,一直报错,可能是不认自签名证书。 于是琢磨了下怎么手动申请Let’s Encrypt的证书用于内网,对过程简单梳理如下。 自签名证书 | Self-Signed Certificate 如果你在内网环境只需要自签名证书,可以参考Bitwarden的帮助文档( Installing and depoying )进行设置: 1、生成自签名证书: //一条命创建私钥和证书: openssl req -x509 -newkey rsa:4096 -sha256 –nodes -days 10950 \    -keyout privite.key -out identity.crt \    -subj "/C= US /ST= New York /L= New York /O= Company Name /OU= CREAST /CN= bw.creast.win " 将生成的文件放到 /ssl 目录下: privite.key     ~/bwdata/ssl/ bw.creast.win/private.key identity.crt      ~/bwdata/ssl/ bw.creast.win/identity.crt 2、生成.pfx格式证书文件: //一条命令将前面生成的私钥和证书打包成需要的pfx格式文件 openssl pkcs12 -export -out ./ identity.pfx -inkey privite.key \    -in identity.crt -certfile identity.crt -passout pass: IDENTITY_CERT_PASSWORD 注意 IDENTITY_CERT_PASSWORD 跟./env/global.override.e

Tor洋葱路由的设置与使用

先说明一下,这里只是利用Tor来访问被GWF屏蔽的优秀服务(如Wikipedia、Blogger、GG App等),并不侧重于如何匿名访问网络。以下Tor设置方法适用于: MS Windows(2000/XP/Vista/Server)系统 第一步:下载并安装Tor 关于Tor(The Onion Router,洋葱路由)的工作原理,可以参考枪旗工作室的说明 ( http://tcno.net/doc/tor/#para1 )。在Windows下安装配置Tor已经非常容易了,直接下载这样一个Tor的Windows 捆绑软件包( Vidalia-Tor-Privoxy Bundle ),其中已经预先配置好这些软件能够一同工作。 安装前可以看到套件捆绑了哪些软件:Tor、Vidalia(Tor 的一个图形用户界面)和 Privoxy(Web 代理软件)、Torbutton(Firefox浏览器插件)全选这些软件进行安装。 安装完成后会自动运行Vidalia,在弹出的控制面板上可以看到当前的状态,Tor已经运行了,此时不需要再进行其它设置了。 第二步:配置浏览器使用Tor 如果使用 Firefox 浏览器,Bundle里已经附带了 Torbutton 插件 ,打开/重启Firefox就会在右下角显示Tor Enabled/Disabled,单击它可以选择是否开启Tor代理功能。 对于 Internet Explorer 没有现成的插件可用,需要手动配置代理设置,也很容易。 菜单位置 工具 - Internet 选项 - 连接 - 局域网设置 - 代理服务器 - 高级 - 服务器 在代理理服务器地址栏里填入 "localhost",端口为 "8118"(Privoxy不支持FTP代理,填不填都无所谓了);注意套接字SOCKS代理的端口为 "9050",如果有其它选项,请选择Socks5,然后"确定"即可。 对于 Maxthon ,如果对IE设置了Tor可以选择“使用IE代理设置”,或者手动添加一个代理列表,内容与上面填写的一样,然后选择应用就可以了。 这里说明一下 Privoxy 的作用,因为当直接使用 SOCKS 代理时,浏览器会泄露