Add New Notes

This commit is contained in:
geekard
2012-08-08 14:26:04 +08:00
commit 5ef7c20052
2374 changed files with 276187 additions and 0 deletions

View File

@@ -0,0 +1,120 @@
Content-Type: text/x-zim-wiki
Wiki-Format: zim 0.4
Creation-Date: 2011-05-15T19:18:15+08:00
====== CSS中line-height属性详解 ======
Created Sunday 15 May 2011
其实想成为一个页面布局高手并不是那么的容易像我这样的上不了台面的水平也就是在真正牛B的天地之外小打小闹混口饭吃而已。不过我觉得若是有时间深入的了解一下css其中的微妙知识点也是一件不错的事。技多不压身嘛。这是今天偶尔看到的一篇文章对line-height属性讲解十分详细相当不错。对于想深入了解css的童鞋们是一个不错的教程。下面开始播放
**行高指的是文本行的**__基线__**间的距离,但是文本之间的空白距离不仅仅是行高决定的,同时也受**__字号__**的影响。**
===== 语法 =====
line-height属性的具体定义列表如下
语法: line-height : normal | <实数> | <长度> | <百分比> | inherit
说明: 设置元素中行的高度。
值: normal默认行高一般为1到1.2 实数:实数值,缩放因子; 长度:合法的长度值,可为负数; 百分比:百分比取值基于元素的字体尺寸。
初始值: normal
继承性: 继承
适用于: 所有元素
媒体: 视觉
计算值: 长度和百分比值为绝对值;其他同指定值。
__行高__指的是文本行的基线间的距离。而基线Base line指的是一行字横排时下沿的基础线**基线并不是汉字的下端沿而是英文字母x的下 端沿**同时还有文字的顶线Top line、中线Middle line和底线Bottom line用以确定文字行的位置如下图 所示:
{{./1.gif}}
行高与字体尺寸的差称为__行距__leading如下图所示
{{./2.gif}}
===== 内容区域、行内框和行框 =====
理论上讲一行中的每个元素都有一个__内容区域它是由字体尺寸决定__的如下图所示
{{./3.gif}}
行内元素会生成一个__行内框__inline box行内框只是一个概念它__无法显示__出来但是它又确实存在。在没有其他因素影响的时候行内框等于内容区域而设定行高则可以增加或者减少行内框的高度__将行距的值行高-字体尺寸除以2分别增加到内容区域的上下两边__如下图所示
{{./4.gif}}
由于行高可以应用在任何元素上,因此同一行内的若干元素可能有不同的行高和行内框高,例如有如下代码,其显示如下图所示。
{{./5.gif}}
<p style=”line-height:20px;”>行高20px。
<strong style=”line-height:50px;”> 行高50px。</strong>
<span style=”line-height:30px;”>行高30px。</span>
</p>
这里又有一个新的概念——__行框__line box。同行内框类似行框是指本行的一个虚拟的矩形框其高度等于__本行内所有元素中行高最大的值__。因此当有多行内容时每行都会有自己的行框如下图所示
{{./6.gif}}
提示:理解行框和行内框的概念对于学习本章[7.4垂直对齐vertical-align属性]一节的内容非常重要。
注意行框的高度只同本行内元素的行高有关而和父元素的高度height无关。
__小结__
行距是相邻两行的上一行基线和下一行的顶线间距离
行高是相邻两行间的基线间距离。
内容区域由字体尺寸决定,两者相等。
行内框由其内的字体尺寸和line-height决定。
行框由同一行中最大的行内框决定。
===== 行高的计算与继承 =====
以em、ex和百分比为单位的行高其__基数是元素本身的字体尺寸__。例如有代码如下
<p style=”font-size:20px;line-height:2em;”>字高20px行高2em。</p>
<p style=”font-size:30px;line-height:2em;”>字高30px行高2em。</p>
个段落的行高都为2em但是字体大小不同因此显示如下图所示:
{{./7.gif}}
行高可以设定得比字体高度小,此时多行的文字将叠加到一起,例如有如下代码,其显示如下图所示:
{{./8.gif}}
p { font-size : 20px; line-height :10px; }
<p>字高20px行高10px。此时多行的文字将叠加到一起。</p>
行高是可继承的但是__继承的是计算值__例如有如下代码
p { font-size :20px; line-height : 2em; }
p span { font-size : 30px; }
<p>字高20px。<span>字高30px。</span></p>
<p>元素的行高2em字体尺寸为20px因此计算值为40px虽然<span>元素本身的字体尺寸为30px不过其继承的行高仍为40px。但是在不同的浏览器内显示的效果却不尽相同如下图所示
{{./9.gif}}
由于继承的是计算值,因此当元素内的文字字体尺寸不一样的时候,如果设定固定的行高很可能造成字体的重叠,例如有如下代码,其显示如下图所示:
{{./10.gif}}
p { font-size : 20px; line-height : 1em; }
p span { font-size : 30px; }
<p>字高20px行高1em当文本为多行时可能会发生文字重叠的现象。<span>字高30px。</span></p>
为了避免这种情况可以为每个元素单独定义行高但是这样很烦琐因此可以定义一个没有单位的实数值作为缩放因子来统一控制行高__缩放因子是直接继承的__而不是继承计算值。例如修改上例中的行高为
p { line-height : 1; }
则上例中的XHTML代码显示如下图所示
{{./11.gif}}
当内容中含有图片的时候如果图片的高度大于行高则__含有图片行的行框将被撑开到图片的高度__如下图所示
{{./12.gif}}
注意:图片虽然撑开了行框,但是不会影响行高,因此也不会影响到基于行高来计算的其他属性。
提示当行内含有图片的时候__图片和文字的垂直对齐方式默认是基线对齐__关于垂直对齐将在本章[7.4 垂直对齐vertical-align属性]一节中讨论
**PS:**如果line-height属性值有单位那么继承的值则是换算后的一个具体的px级别的值而如果属性值没有单位则浏览器会直接继承这个 “因子数值而非计算后的具体值此时它的line-height会根据本身的font-size值重新计算得到新的line-height 值。为了应付各种不可尽知的情况请习惯不要给line-height单位。
===== 浏览器的差别与错误 =====
浏览器在显示的时候往往会有自己的表现形式例如在Opera内行高将按照CSS定义的将行距除以2增加到内容区域的上下两边而IE和Firefox则不是完全平分如下图所示
{{./13.gif}}
不过相差的1至2个像素在实际显示中一般不会有太大的影响因此可以忽略不计。比较严重的错误是IE 6.0对于含有图片或者表单元等__可替换行内元素的行高失效的问题__不过在IE 7.0中已经修正了这个错误,但是其表现同其它浏览器也不相同。例如有如下代码,其显示如下图所示:
{{./14.gif}}
#lineHeight4 p { line-height : 60px; }
#lineHeight4 fieldset{ border : 0; }
<div id=”lineHeight4″>
<p>内容含有图片在[IE 6]内浏览line-height将失效。<img src=”../../img/ddcat_anim.gif” alt=”图片” width=”88″ height=”31″ /></p>
<form id=”testForm” action=”#”> <fieldset> <p><label for=”test1″>表单元素</label>< input type=”text” maxlength=”16″ value=”IE6内行高失效” /></p></fieldset> </form>
</div>
由上图中读者可以发现IE 7.0中将半行距分别加在了图片的上下而由于图片默认是基线对齐因此文字的基线下移了这显然不符合CSS中的规定。
对于IE 6.0中行高失效的问题需要使用CSS Hack手段来针对IE 6.0设定替换元素的上下补白来修正。

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

View File

@@ -0,0 +1,55 @@
Content-Type: text/x-zim-wiki
Wiki-Format: zim 0.4
Creation-Date: 2011-05-15T22:01:30+08:00
====== css 百分比 定义高度 小结 ======
Created Sunday 15 May 2011
http://blog.csdn.net/nailwl/archive/2010/07/16/5740057.aspx
css 百分比 定义高度 小结
在符合标准的 XHTML 模式下,将 DIV 的高度简单的设置为 100% 往往并不能达到想要的效果,
原因是“百分比”是个相对于父节点的值,
如果你没有设置他们的父节点的高度,那么设置 DIV 的高度为100%就没有了意义。
另外一个问题是你或许期望的并不是100%而是在页面高度不够一屏时按照100%显示,
当你的页面超过视窗的大小时DIV 要能够撑开这样的话min-height才是你真正想要的。
下面的代码可以让页面不足一屏时按照100%显示,当超过一屏时,又能够撑开:
CSS:
html, body {
height: 100%;
}
#container {
/* this is the div you want to fill the window */
min-height: 100%;
}
由于 Internet Explorer (IE) 6 及其以下的版本并不支持 min-height 属性,
因此,我们需要添加针对 IE 的代码。
CSS:
* html #container {
height:100%
}
在 IE 下,当 DIV 的内容超过 DIV 本身的高度时,
DIV 会自动撑开,因此这样的代码可以很好的解决上面的问题。

View File

@@ -0,0 +1,44 @@
Content-Type: text/x-zim-wiki
Wiki-Format: zim 0.4
Creation-Date: 2011-05-15T22:03:16+08:00
====== height属性参考 ======
Created Sunday 15 May 2011
http://www.w3school.com.cn/css/pr_dim_height.asp
CSS height 属性
CSS 参考手册
定义和用法
height 属性设置元素的高度。
说明
这个属性定义元素内容区的高度,在内容区外面可以增加内边距、边框和外边距。
行内非替换元素会忽略这个属性。
默认值: auto
继承性: no
版本: CSS1
JavaScript 语法: object.style.height="50px"
实例
设置段落的高度和宽度:
p
{
height:100px;
width:100px;
}
TIY
浏览器支持
所有主流浏览器都支持 height 属性。
注释:任何版本的 Internet Explorer (包括 IE8都不支持属性值 "inherit"。
可能的值
值 描述
auto 默认。浏览器会计算出实际的高度。
length 使用 px、cm 等单位定义高度。
% 基于包含它的块级对象的百分比高度。
inherit 规定应该从父元素继承 height 属性的值。

View File

@@ -0,0 +1,7 @@
Content-Type: text/x-zim-wiki
Wiki-Format: zim 0.4
Creation-Date: 2011-05-15T20:14:16+08:00
====== overflow ======
Created Sunday 15 May 2011