【CSS3初探之字体、文本相关】让人开不了始的CSS3。。。

前言

2010年MIX大会上微软的工程师在介绍IE9时,以前端角度讲互联网发展分为了三个阶段:

1 以内容为主的web1.0网络,前端主流技术为html与css

2 以ajax为首的异步数据加载技术,热门技术是js/dom/异步数据请求

3 便是即将迎来的HTML5+CSS3的时代

PS:我记得大概08年的时候,ajax便在大事宣扬,但我私下发现周围会的人真心不多,应用也不多!!!

到今天5年过去了,你页面不是ajax的都不好意思拿出来说,于是我在想5年后若是页面不是html5的,好意思拿出来说吗???

因为,我css水平比较水,所以学习CSS3时候也顺便复习下css2的东西,真是一举两得啊!

因为这个系列都是边学边写的,可能会比较乱或者我唧唧哇哇说很多话,请各位同学见谅了。

抱怨的正文

关于选择器

哎,坑个爹!这篇文章开始的题目不是这个啦!!!他开始的题目是“css3初探之选择器”,我硬是在电脑面前呆若木鸡了将近半个时辰。。。

发现一个事实,css确实坑爹!想我上个星期学html5时,基本上每天都会知道学什么,每天都会知道学的东西是干什么的,但是CSS3呢??

我们来看一下,他的第一章是“选择器”,我一看又多了属性选择器,里面还用到了正则表达式。。。。

对,确实是正则表达式,我在想我们很多重构工程师都是妹妹,而且都只会将图片变成html(我们原来的美工只会作图呢,要他形成页面就是折磨他折磨自己)。

现在选择器居然加上了一个这则表达式,这不坑爹吗?先不说效率会不会有问题,光说我就不会用的。

我们来看看CSS2中的选择器已经够了吧,我感觉都够用了,CSS3多出的其它选择器都可以接受,唯独这个与正则有关的。。。。

关于选择器在页面插入内容

若是上面那个问题还可以理解,可以结束,这个功能的出现,小的就直接以为他在坑爹了,他做了个什么事情呢,我们来看看。
css3提供了一个content属性,可以让我们在某个选择器元素后面插入文字甚至插入图片!!!

好吧,我忍了很久了,我们不是说好了吗?html控制结构,css控制样式,js控制行为,我倒是在想css3这个功能的出现究竟想干什么。。。。

就我看来无论什么提示信息都该属于html的一部分,就算与js有关也好啊!我尤其不能接受居然使用css输出的。

关于其它

然后我们再看看后面的内容,这不就靠谱多了吗?

文字与字体的样式相关盒模型相关样式

背景与边框

变形处理

动画功能

布局相关

......

瞧瞧下面这些,这些才对嘛,这些才是css3应该处理的问题嘛。

既然说它难,那它为什么难?

我感觉CSS3学习困难,那么我们来就应该分析下它为什么学起来困难:

我学html或者js都是以单一知识点做学习,可以形成demo,但对css来说,我写了几个标签,我然后写了几个选择器.......好没成就感啊!!!

因为html与js的知识点分散、而相对独立所以好学;但是css独立吗?他其实也独立的,但我们不能在网页上独立的输出一段文字或者一个框吧。。。

于是我想到了,用css做一个完整的图,不错,这是一个比较不错的点子,但是他太大了,做的时候很容易就不知道哪里该是哪里了,是比较困难的。

所以我这里总结下对我来说学习css困难的原因:

1 不能形成有效的demo

2 由于1没有成就感,从而没有干劲;

那么,这里又引出了一个问题:

如何学习CSS3

屁话,当然是慢慢学了,不能因为刚刚抱怨了一通就不学了,学习还是要讲诚信的,我们不能歧视,不能逃避。。。。。

我这里就从文字这块开始学习吧,在最后学习结束后再找2、3张图形成完整的页面,这样应该达到目的了!

文本缩进

text-indent 可以用于块级元素的文本缩进
text-indent
 1 <!DOCTYPE html>
 2 
 3 <html xmlns="http://www.w3.org/1999/xhtml">
 4 <head>
 5     <title></title>
 6     <style type="text/css">
 7         div { text-indent: 10px;}
 8     </style>
 9 </head>
10 <body>
11     <div>
12         我感觉CSS3学习困难,那么我们来就应该分析下它为什么学起来困难: 我学html或者js都是以单一知识点做学习,可以形成demo,但对css来说,我写了几个标签,我然后写了几个选择器.......好没成就感啊!!!
13         因为html与js的知识点分散、而相对独立所以好学;但是css独立吗?他其实也独立的,但我们不能在网页上独立的输出一段文字或者一个框吧。。。 于是我想到了,用css做一个完整的图,不错,这是一个比较不错的点子,但是他太大了,做的时候很容易就不知道哪里该是哪里了,是比较困难的。
14         所以我这里总结下对我来说学习css困难的原因: 1 不能形成有效的demo 2 由于1没有成就感,从而没有干劲; 那么,这里又引出了一个问题:
15     </div>
16 </body>
17 </html>

若是设置负值的话文字将不会被显示:

文本对齐

text-align 会影响一个元素中文本的对齐方式;应用于块级元素
BUG
在IE6中会把text-align理解为center元素,导致完全居中,因为ie6中margin: 0 auto;居中不管用,所以这居然提供了一个居中的方法。。。

居中对齐还是比较简单的,我们就不做讨论了,下面来看看垂直对齐:

行高line-height是指文本行基线之间的距离,而不是指字体大小,他确定了将各个元素框的高度增加或减少多少(应用于多有元素)。
在最基本情况下,指定line-height可以用来增加(减少)文本行之间的垂直间隔;
但其实是line-height控制了行间距,即文本行之间超出字体大小的额外空间,再直白点:line-height和字体大小之差就是行间距。
文本行中每个元素都会生成一个内容区,它由字体大小确定,
这个内容区会生成一个“行内框inline box”,如果不存在其它因素这个行内框就完全等于元素内容区。
由line-height产生的行间距就是增加或者减少各个inline-box高度因素之一。
要确定一个给定元素的行内框,只需用line-height减去font-size,这个就是行间距(可能是负值),将之除以2便是元素inline-box

根据以上所述,我们可以得到两个结论:

1 当font-size大于line-height时,文本上下就会产生重合。

2 因为font-size固定以及line-height固定,所以可以得到相同的行间距,其实也就确定了每个元素的inline-box了。

另外,若不给line-height设置值,他将会是font-size的1.2倍。

文字阴影

可以使用text-shadow给页面上的文字添加阴影效果

text-shadow: len len len color;
第一个参数为横向偏移距离
第二个参数为纵向偏移距离
第三个参数为阴影的模糊半径
最后一个为颜色

几个属性可以不写

话说带阴影的字真好看,若是作为标题神马的还真是不错,而且一个文字可以指定多个阴影:

文本自动换行word-break

原来ie浏览器就支持该属性了,现在其他浏览器也支持了,所以我们貌似可以直接拿来用。

浏览器本身自带换行功能,但若是一个单词过长或者数字过大,比如比尔的资金。。。那么浏览器估计就不能换行了,因为浏览器嫉妒。。。

这个时候我们一般用word-break: break-all解决之。

然后用word-wrap: break-word时浏览器不出现滚动条。

......此处省略4千字。。。

结语

莫名其妙的一章就看完了,说实话没什么感觉,而且时间用的比搞其他事情多,明天继续吧。。。

posted on 2013-04-22 23:29  叶小钗  阅读(1733)  评论(6编辑  收藏  举报