zoukankan      html  css  js  c++  java
  • 【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千字。。。

    结语

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

  • 相关阅读:
    easyui-datagrid 编辑模式下保存数据,光标所在单元格无法保存。
    esayui datebox 系统日期之后禁止选择
    使用easy-TreeGrid完成角色权限设置;使用checkbox
    jquery easyui easyui-combobox 与easyui-textbox 取值赋值操作
    原生js table中点击操作按钮,获取相应行某列需要的值作为参数请求跳转
    excel 导出 兼容到ie (JavaScript)
    vue 路由导航重复跳转报错解决记录
    变量提升
    定时器轮播,轮播一次加载一张图;
    es7 es8 新加的特性。
  • 原文地址:https://www.cnblogs.com/yexiaochai/p/3036662.html
Copyright © 2011-2022 走看看