iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >css line-height属性的使用方法
  • 407
分享到

css line-height属性的使用方法

2024-04-02 19:04:59 407人浏览 八月长安
摘要

这篇文章主要介绍“CSS line-height属性的使用方法”,在日常操作中,相信很多人在css line-height属性的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大

这篇文章主要介绍“CSS line-height属性的使用方法”,在日常操作中,相信很多人在css line-height属性的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”css line-height属性的使用方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

css中用于设置行高的属性,line-height属性。

第一,对css3的选择器和类似header、nav、footer等标签不兼容,在不使用插件js处理的情况下,从纯CSS的角度来切入,可以采用类名来做定义,这是常用的替代方案。

项目中,针对元素背景不支持颜色渐变的情况,折中的方案是给其一个最合适的背景色,这样使得背景色和文字颜色能有个基本的对比和区分,不至于影响用户的阅读和正常浏览。
例如:

代码如下:


header.sub-hd{  
   position:relative;  
   height:40px;  
   background-image:-moz-linear-gradient(top, #13b9fd, #0183c3);  
   background-image:-o-linear-gradient(top, #13b9fd, #0183c3);  
   background-image:-WEBkit-gradient(linear,left top,left bottom,color-stop(0,#13b9fd),color-stop(1,#0183c3));  
   box-shadow:inset 0 1px 4px #6cd5ff;  
   -moz-box-shadow:inset 0 1px 4px #6cd5ff;  
   -webkit-box-shadow:inset 0 1px 4px #6cd5ff;  
   text-align:center;  
   font-size:15px;  
   background-color:#099ddf;  
}

针对IE6不识别HTML5标签的方法
 

代码如下:


<script>  
(function(){  
   var e ="abbr,article,aside,audio,canvas,datalist,details,dialog,eventsource,figure,footer,header,hgroup,mark,menu,meter,nav,output,progress,section,time,video".split(','),i=e.length;  
   while(i--){  
       document.createElement(e[i]);  
   }  
})();  
</script>

第二,我们经常使用line-height属性,定义行高,尤其是需要设置垂直居中的时候,常常让height属性与line-height属性相同。而且其是可以继承的,一篇文章的父标签定义了行高属性,其子段落元素就不需要再次进行声明。可是,也有例外的情况。比如在Opera Mobile浏览器,就必须要再次声明,才能生效。

例子:
1,html代码

代码如下:


<div class="test"><h3>测试标题在Opera Mobile下的宽高</h3></div>

2,CSS代码
 

代码如下:


<style>  
.test{width:100%;height:40px;line-height:40px!important;background-color:black;color:#eee; opacity:0.5;}  
.test h3{border:1px solid red;}  
</style>

从手机上看页面效果:不居中!
通过观察红色边框大小,知道内标签h3的呈现高度与实际呈现的line-height一致,都不是我们父div定义的数值。

然后,我们给h3加上line-height属性值,可以设置为line-height:inherit或者line-height:40px;
1,CSS代码:
 

代码如下:


<style>  
.test{width:100%;height:40px;line-height:40px!important;background-color:black;color:#eee; opacity:0.5;}  
.test h3{line-height:inherit;border:1px solid red;}  
</style>

查看效果,竟然没有变化,依然没有垂直居中。这是为什么呢?
莫非是浏览器自身默认的属性优先级高过了当前的属性优先级。

更改一下优先级:

代码如下:


<style>  
.test{width:100%;height:40px;line-height:40px!important;background-color:black;color:#eee; opacity:0.5;}  
.test h3{line-height:inherit!important;border:1px solid red;}  
</style>

再看,果然可以了。垂直居中了。
由此我们页可以印证另一种说法:对于一个空容器,写入内容容器被撑开有了高度宽度,但实际上根本不是文字撑开了div的高度,而是line-height属性。
CSS中起高度作用的主要是height以及line-height了吧!如果一个标签没有定义height属性(包括百分比高度),那么其最终表现的高度一定是由line-height起作用,即使是IE6下11像素左右默认高度bug也是如此。

至于内部的机理,看这里很形象的表述:

到底这个line-height行高怎么就产生了高度呢?在inline box模型中,有个line boxes,这玩意是看不见的,这个玩意的工作就是包裹每行文字。一行文字一个line boxes。例如“艾佛森退役”这5个字,如果它们在一行显示,你艾佛森再牛逼,对不起,只有一个line boxes罩着你;但“春哥纯爷们”这5个字,要是竖着写,一行一个,那真是够爷们,一个字罩着一个line boxes,于是总计五个line boxes。line boxes什么特性也没有,就高度。所以一个没有设置height属性的div的高度就是由一个一个line boxes的高度堆积而成的。

其实line boxes不是直接的生产者,属于中层干部,真正的活儿都是它的手下 &ndash; inline boxes干的,这些手下就是文字啦,图片啊,span之类的inline属性的标签啦。line boxes只是个考察汇报人员,考察它的手下谁的实际line-height值最高,谁最高,它就要谁的值,然后向上汇报,形成高度。
例如:

代码如下:


<span >取手下line-height<span >最高</span>的值</span>。

则line boxes的高度就是40像素了。
虽然所有浏览器都支持 line-height 属性。但是任何的版本的 Internet Explorer (包括 IE8)都不支持属性值 "inherit"。因此在实际中,我们最好还是用数值定义line-height。

在本例中即为

代码如下:


<style>  
.test{width:100%;height:40px;line-height:40px!important;background-color:black;color:#eee; opacity:0.5;}  
.test h3{line-height:40px!important;border:1px solid red;}  
</style>

当然,还有一种折中的办法,可以将内容高度设为浏览器默认行高差不多的数值,其余不足的用padding补齐,这样在Opera mobile下,继承浏览器的21px默认行高,就不需要通过加important标记覆盖浏览器默认值了。同时,在其他标准浏览器我们为其子元素指定一个同样的行高,这样就能做到暂时兼容opera mobile 和其他所有标准的浏览器

浏览器默认行高各不相同,一般范围在16px~21px之间。

例子:
 

代码如下:


<header class="sub-hd">  
   <div class="tit">应用信息</div>  
</header>
header.sub-hd{  
   position:relative;  
     
   height:21px;  
   padding:9px 0;  
   background-image:-moz-linear-gradient(top, #13b9fd, #0183c3);  
   background-image:-o-linear-gradient(top, #13b9fd, #0183c3);  
   background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#13b9fd),color-stop(1,#0183c3));  
   box-shadow:inset 0 1px 4px #6cd5ff;  
   -moz-box-shadow:inset 0 1px 4px #6cd5ff;  
   -webkit-box-shadow:inset 0 1px 4px #6cd5ff;  
   text-align:center;  
   font-size:15px;  
   background-color:#099ddf;  
}  
header .tit{  
   -webkit-box-sizing:border-box;  
   position:absolute;  
   left:50%;  
   width:150px;  
     
   line-height:21px;  
   margin-left:-75px;  
   color:#fff;  
   text-shadow:0 1px 0 #333;  
   font-weight:bold;  
   overflow:hidden;  
   font-size:18px;  
}

当然这种办法并不是最佳的解决途径,只是权宜之计。最好还是采用上面的优先级设定,通用。

还是有问题!

先来温习一下line-height属性可能的值:
nORMal,默认。
number 数字,此数字会与当前的字体尺寸相乘来设置行间距。
length     设置固定的行间距。单位em,px,pt等等。
百分比% ,基于当前字体尺寸的百分比行间距。
inherit ,规定应该从父元素继承 line-height 属性的值。

line-heignt不能是负数,line-height 属性设置行间的距离(行高)。会影响行框的布局。在应用到一个块级元素时,它定义了该元素中基线之间的最小距离而不是最大距离。

line-height 与 font-size 的计算值之差(在 CSS 中成为“行间距”)分为两半,分别加到一个文本行内容的顶部和底部。可以包含这些内容的最小框就是行框。

原始数字值指定了一个缩放因子,后代元素会继承这个缩放因子而不是计算值。

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

行高与字体尺寸的差称为行距(leading)

使用行高代替高度避免haslayout:在某些情形下,line-height可以和height互换,因为实现的效果一样。都能撑开一个高度,然而这两个css属性有一个较隐蔽的差异,就是使用height会使标签haslayout,而使用line-height则不会。以前只有IE6的时候曾流行使用height清除浮动,就是利用了IE下height使haslayout的属性。但有时候,haslayout并不需要,反而要避免。

都喜欢给line-height带单位,但是在一些情况下会出现问题,看例子:
 

代码如下:


<style type="text/css">  
.demo{line-height:150%;}  
pre{font-size:30px;}  
</style>  
<div class="demo">  
   <pre>  
   第一行  
   第二行  
   </pre>  
</div>

两行文字发生了重叠。
为什么带单位的line-height继承,有可能会发生重叠的现象呢?

如果line-height属性值有单位,那么继承的值则是换算后的一个具体的px级别的值;而如果属性值没有单位,则浏览器会直接继承这个“因子(数值)”,而非计算后的具体值,此时它的line-height会根据本身的font-size值重新计算得到新的line-height 值。

上例中的div的line-height为150%,由于默认情况的字体大小为16px,所以div的具体line-height值可换算为16px*150%=24px,由于pre的line-height会继承24px这个换算过后的具体值,此时pre又被重新定义了font-size:30px;字体大小超过了line-height的大小,于是发生重叠。其它单位原理一样。

因此建议,养成给line-height不带单位的习惯,如line-height:1.5;这种写法避免重叠。

在显示文章的box里,px的表示方法首先是要被淘汰的。因为文章里面的文字是有大有小的,使用px定值,由于继承性,无法实现根据文字大小自动调整间距,会出现大号文字重叠的现象。normal也是不行的,一般文章显示最好是650像素的宽度,1.5倍的行距较好。

一般浏览器的normal值在1~1.2之间,使用normal必然文字间距过小,阅读吃力。
百分值也有继承性,但是有个很搓的办法可以实现文字间距自动适应于文字的大小,那就是使用“*”通配符,例如:.article_box *{line-height:150%;}就不会出现文字重叠的情况了。

到此,关于“css line-height属性的使用方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: css line-height属性的使用方法

本文链接: https://www.lsjlt.com/news/76005.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • css line-height属性的使用方法
    这篇文章主要介绍“css line-height属性的使用方法”,在日常操作中,相信很多人在css line-height属性的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2024-04-02
  • css line-height属性怎么用
    这篇“css line-height属性怎么用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“css line-height属...
    99+
    2023-06-30
  • 怎么在css中使用line-height属性
    本篇文章给大家分享的是有关怎么在css中使用line-height属性,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。行间距,即传说中控制两行文字垂直距离的东东。在CSS中,li...
    99+
    2023-06-09
  • 如何在css中使用line-height属性
    这期内容当中小编将会给大家带来有关如何在css中使用line-height属性,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、line-height语法line-height属性的具体定义列表如下:语法...
    99+
    2023-06-08
  • CSS的line-height属性有什么用
    本篇内容介绍了“CSS的line-height属性有什么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • CSS line-height属性有什么用
    CSS line-height属性用于设置元素中文本行之间的间距。它可以被应用于块级元素、行内元素和替换元素。通过设置line-he...
    99+
    2023-10-11
    CSS
  • CSS中行高line-height属性的使用技巧有哪些
    这篇文章将为大家详细讲解有关CSS中行高line-height属性的使用技巧有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。先来回顾一下line-hei...
    99+
    2024-04-02
  • DIV+CSS中min-height属性的使用方法
    这篇文章主要讲解了“DIV+CSS中min-height属性的使用方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“DIV+CSS中min-height属性...
    99+
    2024-04-02
  • CSS中怎么利用line-height属性设置行高
    这期内容当中小编将会给大家带来有关CSS中怎么利用line-height属性设置行高,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 一、行高的...
    99+
    2024-04-02
  • CSS 行高属性指南:line-height 和 vertical-align
    标题:CSS 行高属性指南:line-height 和 vertical-align引言:在进行网页设计或者前端开发过程中,我们经常需要调整文本的行高和垂直对齐方式,以达到更好的排版效果。在 CSS 中,我们可以使用 line-height...
    99+
    2023-10-21
    CSS 属性 行高
  • css中的height属性怎么用
    这篇文章主要为大家展示了“css中的height属性怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“css中的height属性怎么用”这篇文章吧。   c...
    99+
    2024-04-02
  • VBS属性Line的用法
    本篇内容主要讲解“VBS属性Line的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“VBS属性Line的用法”吧!Line 属性只读属性,返回 TextStream 文件中的当前行号。obj...
    99+
    2023-06-08
  • css的line-height功能怎么应用
    本篇内容主要讲解“css的line-height功能怎么应用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“css的line-hei...
    99+
    2024-04-02
  • vertical-align和line-height怎么在css中使用
    这期内容当中小编将会给大家带来有关vertical-align和line-height怎么在css中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。<!DOCTYPE html>&...
    99+
    2023-06-08
  • css中max-height属性怎么用
    这篇文章主要介绍css中max-height属性怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!   说明   该属性值会对元素的高度设置一个最高限制。因此,元素可以比指定值...
    99+
    2024-04-02
  • CSS的animation属性使用方法
    这篇文章主要介绍“CSS的animation属性使用方法”,在日常操作中,相信很多人在CSS的animation属性使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CS...
    99+
    2024-04-02
  • css中的text-decoration-line属性怎么用
    小编给大家分享一下css中的text-decoration-line属性怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!   text-decoration-line属性定义及用法 ...
    99+
    2024-04-02
  • css中clear属性的使用方法
    本篇内容主要讲解“css中clear属性的使用方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“css中clear属性的使用方法”吧!定义和用法clear 属性...
    99+
    2024-04-02
  • CSS中position属性的使用方法
    本篇内容主要讲解“CSS中position属性的使用方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS中position属性的使用方法”吧!positio...
    99+
    2024-04-02
  • CSS中bottom属性的使用方法
    CSS中的bottom属性用于设置元素相对于其父元素的底部边缘位置。通过调整bottom属性的值,可以改变元素在垂直方向上的位置。下面将具体介绍bottom属性的作用和使用方法,并提供...
    99+
    2024-02-26
    css 绝对定位 相对定位
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作