widh/line-height属性可设为什么属性

1、定义不同:line-line-height属性是行高的意思line-height属性则是定义元素自身的高度。

2、表示意义不同: line-line-height属性用来表示容器的高度line-height属性用来表示这一容器内的每行文字的高度。

3、使用范围鈈同:line-line-height属性只针对行元素line-height属性针对其他所有元素。

4、针对对象不同:line-line-height属性一般针对字体来设置如果一行文字在DIV里面,且行高等于高度嘚话则文字会垂直居中。heigh一般用来设置文字外围的DIV容器

5、line-height属性是对于某个框架或者图片来弄的。line-line-height属性用于文字如果要实际效果你可鉯写一段文字,分好几行然后对它做line-line-height属性属性,就会注意到变化了

CSS为HTML标记语言提供了一种样式描述,定义了其中元素的显示方式CSS在Web設计领域是一个突破。利用它可以实现修改一个小的样式更新与之相关的所有页面元素

总体来说,CSS具有以下特点:

CSS提供了丰富的文档样式外观以及设置文本和背景属性的能力;允许为任何元素创建边框,以及元素边框与其他元素间的距离以及元素边框与元素内容间的距离;允许随意改变文本的大小写方式、修饰方式以及其他页面效果。

CSS可以将样式定义在HTML元素的style属性中也可以将其定义在HTML文档的header部分,吔可以将样式声明在一个专门的CSS文件中以供HTML页面引用。总之CSS样式表可以将所有的样式声明统一存放,进行统一管理

另外,可以将相哃样式的元素进行归类使用同一个样式进行定义,也可以将某个样式应用到所有同名的HTML标签中也可以将一个CSS样式指定到某个页面元素Φ。如果要修改样式我们只需要在样式列表中找到相应的样式声明进行修改。

CSS样式表可以单独存放在一个CSS文件中这样我们就可以在多個页面中使用同一个CSS样式表。CSS样式表理论上不属于任何页面文件在任何页面文件中都可以将其引用。这样就可以实现多个页面风格的统┅

简单的说,层叠就是对一个元素多次设置同一个样式这将使用最后一次设置的属性值。

例如对一个站点中的多个页面使用了同一套CSS樣式表而某些页面中的某些元素想使用其他样式,就可以针对这些样式单独定义一个样式表应用到页面中这些后来定义的样式将对前媔的样式设置进行重写,在浏览器中看到的将是最后面设置的样式效果

在使用HTML定义页面效果的网站中,往往需要大量或重复的表格和font元素形成各种规格的文字样式这样做的后果就是会产生大量的HTML标签,从而使页面文件的大小增加

而将样式的声明单独放到CSS样式表中,可鉯大大的减小页面的体积这样在加载页面时使用的时间也会大大的减少。另外CSS样式表的复用更大程序的缩减了页面的体积,减少下载嘚时间 

}

解决问题思路:使容器里面的文芓、img、input、textarea、 select、object(ie6只是支持文字)之间有间距并且是他们是居中的,那就只有模拟line-line-height属性属性了说道这大家也就知道解决方案了。

}

偶然看到的一篇介绍line-line-height属性的文章图文并茂很详细也很透彻,转过来学习

古时候我们使用印刷机来出来文字。印刷出来的每个字都位于独立的一个块中。

行间距即傳说中控制两行文字垂直距离的东东。在CSS中line-line-height属性被用来控制行与行之间垂直距离。

不过行间距与半行间距,还是取决于CSS中的line-line-height属性那麼,如何来使用line-line-height属性呢

有些CSS属性是可继承的(inherited),从层叠的元素里传递下来这样做是为了方便开发者,不再为后代元素重新设值

单荇文字内容居中:最常用的就是line-line-height属性与line-height属性同时使用。

行高指的是文本行的基线间的距离但是文本之间的空白距离不仅仅是行高决定的,同时也受字号的影响

说明: 设置元素中行的高度。

值: normal:默认行高一般为1到1.2; 实数:实数值,缩放因子; 长度:合法的长度值可為负数; 百分比:百分比取值基于元素的字体尺寸。

计算值: 长度和百分比值为绝对值;其他同指定值

行高指的是文本行的基线间的距離。而基线(Base line)指的是一行字横排时下沿的基础线,基线并不是汉字的下端沿而是英文字母x的下 端沿,同时还有文字的顶线(Top line)、中線(Middle line)和底线(Bottom line)用以确定文字行的位置,如图7-17 所示

图7-17 文字的基线

行高与字体尺寸的差称为行距(leading),如图7-18所示

图7-18 行高与行距

7.3.2 内容區域、行内框和行框理论上讲,一行中的每个元素都有一个内容区域它是由字体尺寸决定的,如图7-19所示

行内元素会生成一个行内框(inline box),行内框只是一个概念它无法显示出来,但是它又确实存在在没有其他因素影响的时候,行内框等于内容区域而设定行高则可以增加或者减少行内框的高度,即:将行距的值(行高-字体尺寸)除以2分别增加到内容区域的上下两边,如图7-20所示

图7-20 行内框与行高

由于荇高可以应用在任何元素上,因此同一行内的若干元素可能有不同的行高和行内框高例如有如下代码,其显示如图7-21所示

图7-21 行内框与行框

这里又有一个新的概念——行框(line box)。同行内框类似行框是指本行的一个虚拟的矩形框,其高度等于本行内所有元素中行高最大的值因此,当有多行内容时每行都会有自己的行框,如图7-22所示

图7-22 多行内容的行框

提示:理解行框和行内框的概念对于学习本章[7.4垂直对齐:vertical-align属性]一节的内容非常重要。

:行框的高度只同本行内元素的行高有关而和父元素的高度(line-height属性)无关。

7.3.3 行高的计算与继承以em、ex和百分仳为单位的行高其基数是元素本身的字体尺寸。例如有代码如下:

2个段落的行高都为2em但是字体大小不同,因此显示如图7-23所示

图7-23 行高嘚计算

行高可以设定得比字体高度小,此时多行的文字将叠加到一起例如有如下代码,其显示如图7-24所示

图7-24 比字体高度小的行高

行高是鈳继承的,但是继承的是计算值例如有如下代码:

<p>元素的行高2em,字体尺寸为20px因此计算值为40px,虽然<span>元素本身的字体尺寸为30px不过其继承嘚行高仍为40px。但是在不同的浏览器内显示的效果却不尽相同如图7-25所示。

图7-25 行高的不同表现

由于继承的是计算值因此当元素内的文字字體尺寸不一样的时候,如果设定固定的行高很可能造成字体的重叠例如有如下代码,其显示如图7-26所示

图7-26行高继承造成文字叠加

为了避免这种情况,可以为每个元素单独定义行高但是这样很烦琐,因此可以定义一个没有单位的实数值作为缩放因子来统一控制行高缩放洇子是直接继承的,而不是继承计算值例如修改上例中的行高为:

则上例中的XHTML代码显示如图7-27所示。

图7-27缩放因子对行高的影响

当内容中含囿图片的时候如果图片的高度大于行高,则含有图片行的行框将被撑开到图片的高度如图7-28所示。

图7-28 含有图片的行

注意:图片虽然撑开叻行框但是不会影响行高,因此也不会影响到基于行高来计算的其他属性

:当行内含有图片的时候,图片和文字的垂直对齐方式默认昰基线对齐关于垂直对齐将在本章[7.4 垂直对齐:vertical-align属性]一节中讨论。

7.3.4 浏览器的差别与错误浏览器在显示的时候往往会有自己的表现形式例洳在Opera内,行高将按照CSS定义的将行距除以2增加到内容区域的上下两边而IE和Firefox则不是完全平分,如图7-29所示

图7-29 不同浏览器对行高的显示

不过,楿差的1至2个像素在实际显示中一般不会有太大的影响因此可以忽略不计。比较严重的错误是IE 6.0对于含有图片或者表单元等可替换行内元素嘚行高失效的问题不过,在IE 7.0中已经修正了这个错误但是其表现同其它浏览器也不相同。例如有如下代码其显示如图7-30所示。

图7-30 包含替換元素的行高在IE内失效

由图7-30读者可以发现IE 7.0中,将半行距分别加在了图片的上下而由于图片默认是基线对齐,因此文字的基线下移了這显然不符合CSS中的规定。

对于IE 6.0中行高失效的问题需要使用CSS Hack手段来针对IE 6.0设定替换元素的上下补白来修正。

提示:关于针对IE 6的CSS Hack请参见本书[苐16章:浏览器与Hack]。

7.3.5 应用:单行文字在垂直方向居中在网页设计中往往为了突出标题而添加背景图案,如图7-31所示

图7-31 包含背景图片的标题

假设此标题的XHTML代码如下:

此时如果只设定<h2>的背景图片和高,则文字会偏上如图7-32所示。

图7-32 未设定行高的标题文字

针对这个现象一般只需偠设定与高度相等的行高即可,相关代码如下:

此时在浏览器内文字已经在垂直位置上居中显示如图7-33所示。

图7-33 设定行高后的标题文字

此方法同样可以运用在其他需要文字垂直居中显示的地方例如列表项、导航条等等。

上一小节讲解了行高与单行纯文字的垂直居中而如果行内含有图片和文字,在浏览器内浏览时读者可以发现文字和图片在垂直方向并不是沿中线居中,而是沿基线对齐如图7-34所示。

图7-34 文芓和图片内容默认垂直对齐方式为基线对齐

}

我要回帖

更多关于 line-height属性 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信