行内元素

em a 非替换元素 img 替换元素

两者在内联内容处理方式不一样。

inline有时候被翻译成内联,比如inline content,有时候被翻译成行内 inline box。

行布局

行内元素只是生成一个框,没有其他内容(里面不能放框了可能)与之并存。

单行行内元素

多行行内元素

相邻两行之间的边框,firefox不重叠,上一行的下边界在下一行的上边界的下边,交错着的。似乎chrome是重合的不一样。

水平方向对齐方式 text-align

left right center justify

justify调整每行的word之间的空白,文本两侧和内容区两侧对齐。

基本术语和概念

匿名文本 anonymous

未包含在行内元素标签的文本。比如<p>inline</p>,p是块级元素,之中的文本inline没有被内联标签包括,为匿名文本。

em框

字符框,实际字形可能更高或矮,font-size决定了em框的高度。

内容区

非替换元素,em框串在一起构成框为内容区,或者字符字形描述的框构成内容区,也就是字体设计者设计的实际的大小。试了试每个浏览器不一样,比如设置一个内联非替换元素font-size:12px,内容区高度firefox的内容区高度14px,有时候不同的浏览器还不一样,浏览器应该是用的第二种方案。对于替换元素,内容区为固有高度加内外边距及边框。

行间距 leading

font-size 减去 line-height 为行间距,均分两份(half-leading)放在内容区上下。

行内框 inline box

行内框就是行间距加上内容区。行内框高度的决定:非替换元素的行内框的高度line-height,替换元素内容区高度加内外边距和边框。

行框 line box

不同于行内框,行框是指一行(可能有多个行内框)中的最高的行框到最低行框的距离。

一行如何一步步构成一个行框

一些概念的解释:

  • 内容区类似于块级元素的内容框。
  • 行内元素背景应用于内容去和内边距。和块级元素一样。
  • 行内元素的边界(指想象的盒子边界而不是盒子模型的border)包括内容区加上内边距和边框。
  • 非替换元素的padding margin 不影响形成的行内框的高度。have no vertical effect on inline elements or the boxes they generate
  • 替换元素的padding margin就会影响形成的行内框的高度。

行框的形成:

  1. 确定行内框的高度。行内非替换元素为line-height减去font-size,平分两份,在font-size确定的em框上下放置,形成行内框,行内替换元素,行内框由margin,padding,border加起来。
  2. 对各个内容区,内容区的各个元素及匿名文本的基线位置,替换元素就没有基线,用底部,然后对齐。
  3. 根据vertical-align 调整垂直偏移量。行内框要上/下移动多少。
  4. 计算最后的行框的高度,一行各个行内框的最高的和最低的之间的距离。

行内格式化

line-height决定行框高度。

行内非替换元素

建立内容区

行内框 inline box

基线对齐之后,形成行框 line box

***

垂直对齐 vertical-align

行内框垂直对齐方式

top 行内框的顶部和行框的顶部对齐。bottom 类似

text-top 行内框的顶部和父元素的内容区顶部对齐。另有text-bottom

理解,text-top和内容区(由line-height)顶部对齐,top则是行框(内容区加上行间距)对齐。

关于vertical align 的文章 http://christopheraue.net/2014/03/05/vertical-align/

center 元素基线上0.5ex(ex为以行高作单位)

super 元素内容区和行内框上移 sub下移 可以设定为百分数。

***

管理line-height

如果line-height设置成一个绝对的值,比如14px,如果字体大小大于14px,行间可能会出现重叠。可将line-height 设置成1,表示line-height为font-size的一倍。

但,如果有边框的话,由于line-height不包括边框,也可能出现重叠,只有单独设置带边框的行内框的line-height。

***

缩放行高 line-height:后接数字表示font-size的倍数

***

增加框属性

border是绕着内容区+padding的,而不是line-height的。

上下边框、上下内边距及上下外边距不影响line-height对于非替换行内元素的布局。

CSS权威指南 - 基础视觉格式化 2的更多相关文章

  1. CSS权威指南 - 基础视觉格式化 3

    行内替换元素 替换元素比如图片的高度比line-height大,并不会影响整个文字段落的line-height,会让有图片那一行框的高度可以容纳这个图片. 这个图片依然有一个line-height,和 ...

  2. css权威指南-基本视觉格式化(水平与垂直)

    1.基本概念     (1)正常流:是指西方语言文本从左向右,从上向下显示.如果要让一个元素不在正常流中国,唯一的办法                     就是使之成为浮动或定位元素.     ( ...

  3. CSS权威指南 - 基本视觉格式化 4

    改变元素显示 没有讨论与表格相关的.列表list-item的值.之后讨论. 改变显示角色 显示为块级元素 将一串链接(行内元素)改变垂直放置,若有如下一连串的链接: <div id=" ...

  4. CSS权威指南 - 基本视觉格式化 1

    定位 定位的想法很简单元素框相对于正常位置出现在哪里. 定位:static,相对, 绝对, fixed, 继承 static就是默认的位置 相对就是相对于默认位置的偏移.原来的static定位位置依然 ...

  5. 《CSS权威指南》基础复习+查漏补缺

    前几天被朋友问到几个CSS问题,讲道理么,接触CSS是从大一开始的,也算有3年半了,总是觉得自己对css算是熟悉的了.然而还是被几个问题弄的"一脸懵逼"... 然后又是刚入职新公司 ...

  6. CSS权威指南学习笔记系列(1)CSS和文档

    题外话:HTML是一种结构化语言,而CSS是它的补充:这是一种样式语言.CSS是前端三板斧之一,因此学习CSS很重要.而我还是菜鸟,所以需要加强学习CSS.这个是我学习CSS权威指南的笔记,如有不对, ...

  7. CSS权威指南 - 层叠

    CSS权威指南 第三章结构与层叠 - 层叠 按权重及来源排序 1. Reader important declarations 2. Author important declarations 3. ...

  8. css权威指南读书笔记-第10章浮动和定位

    这一章看了之后真是豁然开朗,之前虽然写了圣杯布局和双飞翼布局,有些地方也是模糊的,现在打算总结之后再写一遍. 以下都是从<css权威指南>中摘抄的我认为很有用的说明. 浮动元素 一个元素浮 ...

  9. css权威指南读书笔记

    今天翻手机,翻到了许久之前看css权威指南时的笔记,遂移到博客中来. 1.属性选择器p.one class名为one的p元素p[class][name] 含有class和name属性的p元素p[cla ...

随机推荐

  1. MFC 相关文件夹、文件操作

    //关于文件(夹)操作,可以参考下SHFileOperation这个外壳函数,貌似可以显示进度条.以下没有使用SHFileOperation//删除一个文件夹下的所有内容void myDeleteDi ...

  2. Linux多台服务器之间的文件共享

    由于项目有个图片上传和导入导出的模块,所以当项目通过集群方式部署的时候就要考虑文件共享问题. 文件共享要么就是通过统一的文件系统来管理,要么就是在系统之间做文件共享,前者扩展性比较好,可以随时随地加服 ...

  3. LeetCode - 413. Arithmetic Slices - 含中文题意解释 - O(n) - ( C++ ) - 解题报告

    1.题目大意 A sequence of number is called arithmetic if it consists of at least three elements and if th ...

  4. 二、JavaScript语言--JS基础--JavaScript进阶篇--事件响应

    1.什么是事件 JavaScript 创建动态页面.事件是可以被 JavaScript 侦测到的行为. 网页中的每个元素都可以产生某些可以触发 JavaScript 函数或程序的事件. 比如说,当用户 ...

  5. MyISAM InnoDB 区别

    MyISAM 和 InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定.基本的差别为:MyISAM类型不支持事务处理等高级处 ...

  6. C# 如何判断系统是否是静音

    推荐的方法,使用CoreAudioApi.dll,仅在win7上测试过: private MMDevice defaultDevice = null; //判断当前系统扬声器状态 private bo ...

  7. ASP.NET 数据库访问通用工具

    在工作中,有很多项目已上线后,很多项目的数据库服务器都不会对外开放的,外网想直接访问客户数据库服务器时,可能会出现困难. 这时就需要一个可以查询,更新数据库操作的页面了: 本来用sql语句直接操作数据 ...

  8. Java Hour7

    有句名言,叫做10000小时成为某一个领域的专家.姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧. 本文作者Java 现经验约为6 Hour,请各位不吝赐教. Hour7 Jav ...

  9. hdu 4001 dp 2011大连赛区网络赛A

    题意:给一些指定长宽高的砖,求能累出的最大高度,不同砖有不同编号,每种编号对下面的砖做出了限制 dp 注意输出要用%I64d,否则会wa,以后不用%lld了 Sample Input 3 10 10 ...

  10. JAVA中操作符的优先级

    一元数学比较有逻辑 三元赋值就可以! 一元操作符 数学操作符 比较操作符 逻辑操作符 三元操作符 赋值操作符