深入了解line-height

1.定义
   行高:两行文字baseline(基线)之间的距离

示意图:

2.为何line-height可以让单行文本垂直居中    
   其实并没有垂直居中,除非将font-size:0;

3.line-height的高度原理(可以先看看行内盒子的原理)
   * 行内元素的高度是line-height决定的,而不是由font-size决定的,
   * 行高由于其继承性,影响无处不在,即使单行文本也不例外
   * 行高只是幕后黑手,高度的表现不是行高,而是内容区域和行间距
   * 内容区域高度+行间距 = 行高
      内容区域高度至于字号以及字体有关,与line-height无关

4.比较有用的属性值
   * line-height:1.5;line-height:150%;line-height:1.5em;
      实际的line-height: font-size*1.5,适合页面自适应

* 区别:
      * 1.5: 所有可继承元素根据自身的font-size重计算行高
      * 150%/1.5em: 当前元素根据font-size计算行高,子元素继承该行高

分析:div的行高: line-height:24px*1.5,span的行高 line-height:60px*1.5
<div style="background:#eee;font-size:24px;line-height:1.5;">
   <span style="font-size:60px;">测试1</span>
</div>
分析: div的行高: line-height:24px*1.5,span继承div的行高 line-height:24px*1.5
<div style="background:#eee;font-size:24px;line-height:150%;">
  <span style="font-size:60px;">测试2</span>
</div>

* 继承性(IE8+)
   input框等元素默认行高是normal,使用inherit可以让文本框样式可控性更强

* 使用经验
   body{font-size:14px;line-height:1.4286}  => line-height:20px;

5.line-height和图片的表现
  * 行高不会影响图片实际占据的高度
  * 消除图片底部间隙的方法
    a.图片块状化 - 无基线对齐   img{display:block;}
    b.图片底线对齐  img{vertical-align:bottom;}
    c.行高足够小 - 基线位置上移 .box{line-height:0;}

6.line-height的实际应用
   * 大小不固定的图片垂直居中(IE8+)

.box{height:300px;line-height:300px;text-align:center;}
.box>img{vertical-align:middle;/*基线网上1/2高度*/}

* 多行文本垂直居中(IE8+)

.box{line-height:250px;text-align:center;}
.box>.text{display:inline-block;line-height:normal;text-align:left;vertical-align:middle;}
/* 重置外部继承的line-height、text-align */

* 代替height,避免IE6/IE7下的haslayout

<span class="out">
   <span class="in1">height:36px;</span>
</span>
<span class="out">
   <span class="in2">line-height:36px;</span>
</span>

.out{display:inline-block;/*或float:left*/}
.in1{display:block;height:36px;}
.in2{display:block;line-height:36px;}

/*结果:在IE6/IE7下,out容器的 inline-block,给变成了block*/
时间: 2024-12-05 15:31:28

深入了解line-height的相关文章

line height 与 vertical align

一.line height 其中代表inline box(包含上下间距,若height==line-height,则行间距=line-height - font-size/2),big代表content area. 注: 若line-height < content area ,则line box要取line-height的值,这也是为什么会重叠的原因. line-height属性取值: 1. % 若自身没有设置line-height,则line-height = 父元素的font-size *

深入了解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-

html样式初始化

/*! normalize.css v4.0.0 | MIT License | github.com/necolas/normalize.css */ /** * 1. Change the default font family in all browsers (opinionated). * 2. Prevent adjustments of font size after orientation changes in IE and iOS. */ html { font-family:

CSS3黑色时钟

一个朋友写的,收藏之 <!doctype html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> .divBox { width:600px; height: 600px; position: absolute; top: 0px; bottom: 0px; left: 0p

Designing CSS Layouts With Flexbox Is As Easy As Pie

This article is an updated excerpt of the chapter "Restyle, Recode, Reimagine With CSS3″ from our Smashing Book #3, written by Lea Verou and David Storey. - Ed. Flexible box layout (or flexbox) is a new box model optimized for UI layout. As one of th

normalize.css可以对css初始化,不同浏览器可以统一初始样式

/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */ /* Document ========================================================================== */ /** * 1. Correct the line height in all browsers. * 2. Prevent adjustments of font

【学习笔记】前端开发调试工具与PS切图技巧

[学习过程遇到疑问和延伸阅读] 1.Sublime Text 安装插件的方式 一开始以为直接安装.原来在安装丰富的插件之前,Sublime Text需要通过Package Control这个插件来管理.作为基础插件来管理其他的插件.安装成功之后在菜单栏Preferences下才会有Package Control. "Sublime Text 2 也拥有良好的扩展功能,这就是安装包(Package):通过 Sublime Package Control,安装.升级和卸载 Package 也变得轻松

模仿东京首页banner轮播,京东新闻上下滚动动画实现(动画实现)

接着上篇 微信小程序-阅读小程序demo写:http://www.cnblogs.com/muyixiaoguang/p/5917986.html 首页banner动画实现 京东新闻上下动画实现 想着模仿京东首页呢,结果也没赶得及写完,轮播图让我搞了好长时间.也好,那就国庆8天好好的写一下,这里写了一半,先放着.先介绍一下这一半的内容.       还是老规矩,先放个图吧,虽然才一点点了 上线的banner大图和京东头条都是可以滚动的,抄写微信小程序社区官方qq群:390289365里 Nige

富文本中的段落属性

// NSParagraphStyleAttributeName 段落的风格(设置首行,行间距,对齐方式什么的)看自己需要什么属性,写什么 NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; paragraphStyle.lineSpacing = 10;// 字体的行间距 paragraphStyle.firstLineHeadIndent = 20.0f;//首行缩进 paragr

转:Generating PDFs from Web Pages on the Fly with jsPDF

The Portable Document Format has been one the major innovations in the fields of desktop publishing and office automations. It’s widely used in web publishing too, but unfortunately very often in wrong ways – like using it to replace contents that sh