[CSS学习] line-height属性讲解

记:本文可以作为张老师在慕课网上讲解课程的学习笔记

定义

line-height:通过查MDN文档可知

对于块级元素,CSS属性line-height指定了元素内部line-boxes的最小高度。对于非替代行内元素,line-height用于计算line box的高度。对于替代行内元素,如button/input等元素,line-height并没有影响。

查CSS参考手册,line-height表示字体最底端与字体内部顶端之间的距离,应该是不准确的。

张老师说:line-height表示两条基线之间的距离

通过MDN的定义可以知道,内联元素的高度是由line-height决定的,并不是由字体大小决定的。

高度机理

1. 行高line-height具有继承性,影响无处不在。

2. 高度的表现并不在于行高,而是在于内容区域和行间距。

内容区域高度+行间距=行高

内容区域高度只与字体和字号有关系

取值

line-height的取值有四种类型:normal  <number>  <length>  <percentage>

normal取决于user-agent,与font-family有关系。一般情况下都会在reset.css里面重置line-height

<number>无单位数字,实际计算值=number*字体大小,首选方法。

<length>用于计算line box的高度

<percentage>与元素自身的字体大小有关,实际计算值=percentage*元素计算出的字体大小

inherit行高继承,input等元素默认行高值为normal, 通过使用inherit可以让文本框样式的可控性更强

细微差别

line-height=<number>所有可继承元素根据font-size重新计算行高

line-height=<percentage>/<length>当前元素根据font-size计算行高后继承给子元素

line-height与图片的那些事儿

如果消除图片底部间隙的方法:

1. 图片块状化,这样就没有基线对齐

2. 图片设置底线对齐,默认图片和文字是基线对齐baseline

3. 设置足够小的行高使得基线位置上移 line-height: 0;

应用:

1. 小图片,大文字(图片和文字中线对齐)

保留图片的inline特性,设置文字的字体大小及行高,同时设置图片的vertical-align特性来实现某些效果

如img{vertical-align: bottom;}图片和文字保持底部对齐

img{vertical-align: middle;}图片和文字保持中线对齐

2. 大小不固定的图片,多行文字垂直居中

a. 图片的水平居中:

图片外部容器设置 {line-height: <length>; text-align:center; }

img{ vertical-align:middle;} 图片近视居中,细微之处在于,有隐藏的文本,所以偏差与字体和字号有关。

b. 多行文本水平垂直居中

设置外部容器{ line-height, text-align:center;}

内部文本标签需要修改display转换成和图片一样inline-block,同时重置外部继承的text-align和line-height属性值{text-align:left; vertical-align:middle;}

必要时设置max-width:100%;

时间: 2024-10-14 05:00:15

[CSS学习] line-height属性讲解的相关文章

【CSS学习】--- overflow属性

一.前言 在网页布局中,未处理的溢出元素绝对算得上是个“毒瘤”.因为如果一个“盒子”周围还有其它元素,而从这个盒子中溢出的元素会和盒子周围的元素发生层叠,并脱离了整个HTML元素,所以我们应当合理使用CSS中的overflow属性来处理溢出的元素. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>test</t

深入了解css的行高Line Height属性

来源:http://www.cnblogs.com/fengzheng126/archive/2012/05/18/2507632.html 什么是行间距? 古时候我们使用印刷机来出来文字.印刷出来的每个字,都位于独立的一个块中. 行间距,即传说中控制两行文字垂直距离的东东.在CSS中,line-height被用来控制行与行之间垂直距离. 不过,行间距与半行间距,还是取决于CSS中的line-height.那么,如何来使用line-height呢? 默认状态,浏览器使用1.0-1.2 line-

css学习之 counter属性详解

学习css ,counter属性不得不了解清楚,css counter属性被几乎所有浏览器(包括IE8)支持, 但是却不常使用.本文和大家分享的就是counter属性相关内容,虽然这个属性不常用,但是希望大家需要用的时候,本文对大家有所帮助. COUNTER-RESET 明译为计数器重置.形如: counter-reset: counter-name 常见写法为 /* Set counter-name to 0 */ counter-reset: counter-name; /* Set cou

css学习_css背景属性及其应用

css背景属性及其应用 1.背景 2.背景简写 3.背景透明(css3) 4.背景缩放(css3) 5.多背景图片(css3) 6.凹凸文字效果 原文地址:https://www.cnblogs.com/yangyutian/p/10463515.html

CSS学习笔记-background属性

平常总是使用background的缩写形式,忽视了各属性的细节在此进行总结. background-attachment W3C:属性设置背景图像是否固定或者随着页面的其余部分滚动. 属性值: scroll   默认值.背景图像会随着页面其余部分的滚动而移动. fixed    当页面的其余部分滚动时,背景图像不会移动. inherit  规定应该从父元素继承 background-attachment 属性的设置. background-position W3C:属性设置背景图像的起始位置.其

CSS学习笔记05 CSS display属性

HTML标记一般分为块标记和行内标记两种类型,它们也称块元素和行内元素. 块元素 每个块元素通常都会独自占据一整行或多整行,可以对其设置宽度.高度.对齐等属性,常用于网页布局和网页结构的搭建.并且块级元素容器可以容纳多个嵌套的块级标签或者行内标签.常见的块元素有<h1>~<h6>.<p>.<div>.<ul>.<ol>.<li>等,其中<div>标记是网页制作中最常用的块元素. 行内元素 行内元素不占有独立的区

CSS学习_属性选择器

CSS选择器参考 [attribute]--选取带有指定属性的元素: [attribute=value]--选取带有指定属性和值的元素: [attribute~=value]--选取属性值中包含指定词汇的元素: [attribute|=value]--选取带有以指定值开头的属性值的元素,该值必须是整个单词: [attribute^=value]--匹配属性值以指定值开头的每个的元素: [attribute$=value]--匹配属性值以指定值结尾的每个的元素: [attribute*=value

转: 详解css中的display属性

在一般的CSS布局制作时候,我们常常会用到display对应值有block.none.inline这三个值.下面我们来分别来认识和学习什么时候用什么值.这里通过CSS display知识加实例讲解方法来学习和了解DIV CSS display. 首先,所有主流浏览器都支持 display 属性.其次,我们都知道display 属性规定元素应该生成的框的类型.默认值:inline 我们常用的display属性值有: inlineblockinline-blocknone把 display 设置成

前端html与css学习笔记总结篇(超详细)

第一部分 HTML 第一章 职业规划和前景 职业方向规划定位: web前端开发工程师 web网站架构师 自己创业 转岗管理或其他 web前端开发的前景展望: 未来IT行业企业需求最多的人才 结合最新的html5抢占移动端的市场 自己创业做老板 随着互联网的普及web开发成为企业的宠儿和核心 web职业发展目标: 第一.梳理知识架构 负责内容的HTML 负责外观的css(层叠样式表) 负责行为的js ps切图 第二.分解目标(起步阶段.提升阶段.成型阶段) 起步阶段: 基本知识的掌握 常用工具的掌

CSS学习之float解析

转自:http://www.w3cplus.com/css/float.html 一.float是什么? float即为浮动,在CSS中的作用是使元素脱离正常的文档流并使其移动到其父元素的“最左边”或“最右边”.下面解释下这个定义中的几个名词的概念: 文档流:在html中文档流即为元素从上至下排列的顺序. 脱离文档流:元素从正常的排列顺序被抽离. 最左边/最右边:上述的移动到父元素最左和最右是指元素往左或往右移动直到碰到另一个浮动元素或父元素内容区的边界(不包括padding). 二.float