css样式—字体垂直、水平居中

<div class="tt">啦啦啦</div>
.tt{
            padding: 0px;
            width:500px;
            height:200px;
            text-align:center;
            background-color:#F69;

            display: table-cell;
            vertical-align:middle
        }

为啥呢,这是。好吧。看样式中  display: table-cell  ,作为表格单元格显示,如此一来, vertical-align:middle  属性起作用了。去掉display可就不行了哦!!

 

一:基本概念

  首先,依旧是概念。介绍一下行内元素和块级元素,这个很重要,因为有的属性只能用于块元素,而有的正好相反,在一定的情况下,它们也可以相互转换,比如用display来进行设置。

1.行内元素(又叫内联元素inline element):

    (1) 不占据一整行,随内容而定,有以下特点:

    (2) 不可以设置宽高,也不可以设置行高,其宽度随着内容增加,高度随字体大小而改变。

  (3) 内联元素可以设置外边界,但是外边界不对上下起作用,只能对左右起作用。

  (4) 也可以设置内边界,但是内边界在ie6中不对上下起作用,只能对左右起作用。

 

  常用的内联元素有:a - 锚点,b - 粗体(不推荐),br - 换行,em - 强调,font - 字体设定(不推荐),i - 斜体,img - 图片,input - 输入框,label - 表格标签,

select - 项目选择,small - 小字体文本,span - 常用内联容器,定义文本内区块,strike - 中划线,strong - 粗体强调

 

1.块级元素block element:

    (1) 总是在新行上开始,占据一整行;

    (2) 高度,行高以及外边距和内边距都可控制;

  (3) 宽度始终是与浏览器宽度一样,与内容无关;

  (4) 它可以容纳内联元素和其他块元素。

 

  常用的块级元素有:div -最常用的块级元素,dl - 和dt dd搭配使用的块级元素,form - 交互表单,h1 - 大标题,hr - 水平分隔线,ol - 排序表单,p - 段落,ul - 非排序

列表互相转换:使用display设置可以使得行内元素拥有块级元素的特性,反之也可以。

  

二、现在开始说一下简单的几种基础的居中方式

1.块中文字水平居中:text-align 用于块级元素,作用在使用它的块元素中的文字或者图片上。使得它们在水平方向上居中。

  这个属性只能作用于块元素(或者被CSS控制为块元素的内联元素,但是被控制为内联元素的块元素是不行的)。一句话来说,就是要拥有块元素的特点的那些元素。这个很好理解,居中,肯定是行居中,如果使用它的元素本身不拥有完整的在宽度上的独立空间,它当然没有能力让它内部的文字或者图片居中。

  父元素的这个属性对它下面的子元素也起作用,比如一个div设置了text-align居中,则它内部的文字可以居中,它的子div内部的文字也可以居中。但是子元素中文字的居中,是在子div中居中,而不是对于父div居中。也就是,它里面所有的文字,都会相对于最靠近自己的一层div来实现居中。所以,这个属性不能用于div在父div中的整体居中。(不仅仅是div,所有的表现为块元素的元素)。

 

2 块元素自身水平居中(确定设置了宽度的块):margin。这个肯定是接触CSS一开始就知道的了。

  一般情况下,可以设置margin:0 auto;这会使这个块级元素在它的父级元素中居中,上下左右都会居中。

  如果只要水平居中的话,就设置margin-left:auto;margin-right:auto;

3 块元素自身水平居中(不确定宽度的块):

  在其他的一些文章中,看到有不少方法来介绍不确定宽度的块的居中的。

  其实简单点说,不需要这么麻烦。我们可以这样来理解,没有明确设定宽度的block,根据块级元素的性质,它默认是独占一行的,所以这个时候block本身就是浏览器窗口的宽度,就不必要来设置水平居中了。

 若是此时对块中的内容进行居中的话:

  如果块元素的子元素也为块元素,就对子元素使用margin auto一类的方式就好啦;

  如果块级元素的子元素为行内元素,就用我们一开始介绍的text-align也就可以解决;

  对于子元素为块元素的,也可以用display设置为inline然后再用text-align

4. vertical-align用于行内元素中的垂直居中

  vertical-align,这个可以用的很复杂。看了一些文章和例子,自己也有点小混乱,只说一下最简单的用法:

  这个属性用于

  1、内联元素(以及被转化为内联元素的块元素)

  2 、display设置为table-cell的元素,

  在 firefox 和 ie8 下,可以设置块级元素的 display 值为 table-cell,来激活 vertical-align 属性,显示效果和就和表格中的 valign="center" 一样了。但 ie6,7 并不支持。

  3、<td><tr>这样的元素

    这样的写法:vertical-align:middle;就可以设置文字或者图片的垂直居中。只要具有行内元素的特性的元素使用这个属性,对它的子元素中的文字和图片也是起作用的。但是作用效果为使得文字或者图片相对于紧靠着它们的父元素来进行居中。这个和text-align上面说过的部分是类似的。

5 块级元素中的文字图片垂直居中(针对块的高度确定的,这个是从另一个博客上看到的,真的很实用哦,如果块内只有这些文字的话)

  文字在层(块级元素)中垂直居中vertical-align 属性是做不到的.我们这里有个比较巧妙的方法就是:设置height的高度与line-height的高度相同!

<div style="line-height:500px;height:500;"></div>

 

6 块级元素中的文字图片垂直居中(块的高度不确定的)

  在块的高度不确定的情况下,其实它的高度就是取决于里面内容的高度。如果内部只有文字或者图片的话,那就自然垂直居中了,其实就不必特意要设置。

  如果非要设置什么的话,比如希望块大一些,文字在块中垂直居中好看一点,可以设置内边距,如padding-top:20px;padding-bottom:20px;

  当然,如果上下内边距设置的不一样,就自然不居中了。

 

7 块级元素自身的垂直居中

  设置块级元素自身在父元素中的垂直居中,可以参照块级元素的水平居中的方法(上面说过),设置外边距即可。如果不想设置水平居中,只要设置上下外边距为auto就好。

  也可以采用vertical-align:middle;的方式,但是前提是把display设置为table-cell。这样的话要注意浏览器兼容性问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
div+css有实例,易学易懂第1 章 Web 标准布局的本质 第8 页 1.1 为什么要建立Web 标准 1.1.1 建立Web 标准的目的 1.1.2 使用Web 标准的好处 1.2 什么是Web 标准 1.3 内容、结构和表现 1.4 两种思考方式 1.5 Web 标准的前景 第 2 章 XHTML 书写规范 第14 页 2.1 为什么要使用XHTML 2.2 什么是XHTML 2.3 XHTML 语法基础 2.3.1 XHTML 页面结构 2.3.2 元素的书写格式和属性 2.3.3 各种元素的属性 2.4 XHTML 代码规范 第 3 章 CSS 基础与书写规范 第29 页 3.1 CSS 的基础知识 3.1.1 什么是CSS 3.1.2 CSS 的语法 3.1.3 选择符 3.1.4 属性 3.1.5 伪类和伪元素 3.1.6 默认值 3.1.7 继承性 3.2 CSS 编码规范 3.2.1 CSS 基本书写规范 3.2.2 CSS 样式表书写顺序 3.3 怎样更好地应用CSS 3.3.1 块元素和内联元素 3.3.2 一些CSS 的实用技巧 3.3.3 怎样调试CSS 3.4 关于CSS 的学习 第4 章 网页头部元素的详细定义 第41 页 4.1 DOCTYPE 的选择 4.1.1 什么是DOCTYPE 4.1.2 选择什么样的DOCTYPE 4.2 名字空间 4.3 编码问题 4.4 meta 标签 4.5 CSS 的调用 4.5.1 调用样式表的几种方法 4.5.2 应用样式的优先级 4.6 网页头部实例 第 5 章 CSS 基本布局属性 第50 页 5.1 页面的制作流程和整体分析 5.2 元素定位基础知识 5.2.1 块元素的默认排列 5.2.2 内联元素的默认排列 5.2.3 块元素和内联元素的混合默认排列 5.2.4 使用浮动属性进行定位 5.3 定位属性详解 5.3.1 定位模式 5.3.2 边偏移 5.3.3 层叠定位属性 5.4 定位属性的应用 5.4.1 页面的制作流程和整体分析 5.4.2 相对定位 5.4.3 固定定位 5.4.4 层叠定位属性的使用 5.5 页面的背景设定 5.5.1 使用背景色定义背景 5.5.2 背景图片默认使用 5.5.3 背景图片的重复 5.5.4 背景图片的位置 5.5.5 背景图片的附件 5.6 背景的综合应用 5.6.1 背景的综合应用 5.6.2 背景颜色和背景图片的层叠 5.6.3 背景属性在内联元素中的使用 5.6.4 背景属性的缩写 5.6.5 页面文本的样式 5.6.6 链接的样式 5.7 布局的基础 5.7.1 布局页面的步骤 5.7.2 使用ID 还是Class 5.7.3 控制内容显示的display 属性 5.7.4 控制内容显示的visibility 属性 5.7.5 使用text-align 属性的水平居中 5.7.6 使用margin 属性的水平居中 5.8 浮动属性 5.8.1 浮动属性详解 5.8.2 相邻的浮动元素和固定元素 5.8.3 相邻的两个浮动元素 5.8.4 相邻的多个浮动元素 5.9 关于ul 和li 的样式详解 5.9.1 使用list-style-type 属 5.9.2 使用list-style-position 属性 5.9.3 使用list-style-image 属性 5.9.4 list-style 属性 5.10 菜单原理 5.10.1 菜单原理 5.10.2 制作菜单内容和结构部分 5.10.3 CSS 代码编写 5.11 一个横向导航菜单的制作 5.11.1 菜单原理 5.11.2 制作菜单内容和结构部分 5.11.3 CSS 代码编写 5.12 清除浮动 5.12.1 清除浮动属性详解 5.12.2 清除浮动属性的使用 第6 章 CSS 定义文本属性 第123 页 6.1 文本的缩进和对齐 6.1.1 段首缩进 6.1.2 段首字符下沉与大写 6.1.3 文本的对齐 6.1.4 图文混排 6.2 行高与间隔 6.2.1 行高属性详解 6.2.2 利用行高属性使文本垂直居中 6.2.3 间隔与空白 6.2.4 文本的转换 6.3 水平和垂直居中问题 6.3.1 已知容器和内容大小的水平和垂直居中问题 6.3.2 未知容器的大小而已知内容大小的水平和垂直居中问题 6.3.3 已知容器的大小而未知内容大小的水平和垂直居中问题 6.3.4 容器的大小和内容大小均未知的水平和垂直居中 6.3.5 修饰图片的水平和垂直居中 6.4 字体的综合属性 6.4.1 字体的选择 6.4.2 字体的大小 6.4.3 字体的加粗 6.4.4 字体样式 6.4.5 字体的变形 6.4.6 字体属性的简写 6.5 文本的修饰和链接 6.5.1 文本的修饰 6.5.2 链接属性详解 6.5.3 使用链接的顺序 6.5.4 链接的继承性 6.5.5 cursor 属性 第7 章 CSS 容器属性 7.1 什么是盒模型 7.1.1 内容与盒模型 7.1.2 背景与盒模型 7.2 补白属性 7.2.1 补白属性详解 7.2.2 百分比值的使用 7.2.3 单侧的补白属性 7.2.4 补白属性的简写 7.3 边框属性 7.3.1 边框样式 7.3.2 边框宽度 7.3.3 边框颜色 7.3.4 边框的综合定义 7.3.5 单侧边框的综合定义 7.3.6 一个有用的表格边框属性 7.3.7 应用边框属性的实例 7.4 边界属性 7.4.1 边界属性 7.4.2 单侧的边界和简写 7.4.3 垂直方向的边界重叠 7.4.4 水平方向的边界 7.4.5 负的边界值 7.4.6 在内联元素中使用边界属性 第8 章 浏览器及兼容问题 8.1 浏览器介绍 8.2 要兼容哪些浏览器 8.3 解决兼容问题的原理 8.4 !important 的使用 8.5 水平居中的问题 8.5.1 IE6.0 中的水平居中 8.5.2 FIREFOX2.0 中的水平居中 8.5.3 解决方法 8.6 非浮动内容和容器的问题 8.6.1 IE6.0 中固定宽度和高度的容器和内容 8.6.2 FIREFOX2.0 中的容器与内容 8.6.3 可能出现的问题和解决方法 8.7 使用:after 伪类解决浮动的问题 8.7.1 IE6.0 中的浮动元素和容器 8.7.2 FIREFOX2.0 中的浮动元素和容器 8.7.3 并列浮动元素默认宽度的问题 8.8 嵌套元素宽度和高度叠中的问题 8.8.1 父元素和子元素均没有定义宽度和高度 8.8.2 定义子元素的宽度后的效果 8.8.3 定义父元素宽度后的效果 8.8.4 解决的方法 8.9 子元素负边界的问题 8.9.1 IE6.0 中子元素的负边界 8.9.2 FIREFOX2.0 中子元素的负边界 8.9.3 解决方法 8.10 列表的默认显示问题 8.10.1 列表的默认显示方式 8.10.2 默认属性的取消 8.11 IE6.0 中的问题 8.11.1 浮动元素的双边距和零边距问题 8.11.2 浮动列表的问题 8.11.3 图片的间隙问题 8.12 IE7.0 中的问题 8.12.1 内容和容器的显示方式不同 8.12.2 支持!important 的声明 8.12.3 嵌套的问题 8.12.4 浮动子元素的问题 8.12.5 和IE6.0 相同的问题 8.13 兼容问题实例 8.13.1 纵向导航菜单的兼容 8.13.2 横向导航菜单的兼容 8.13.3 自适应高度的兼容 8.13.4 实例制作中的兼容问题 第9 章 一个英文网站的制作 9.1 分析效果图 9.2 切图 9.2.1 制作首页的切图 9.2.2 二级页面的切图 9.3 制作站点首页头部 9.3.1 首页头部的信息和基础样式的制作 9.3.2 首页头部的分析 9.3.3 首页头部结构的制作 9.3.4 首页头部CSS 代码的编写 9.4 制作首页的主体部分 9.4.1 分析主体部分效果图 9.4.2 制作主体左侧部分的结构 9.4.3 制作主体左侧部分的样式 9.4.4 制作主体中间部分的结构 9.4.5 制作主体中间部分的样式 9.4.6 制作主体右侧部分的结构 9.4.7 制作主体右侧部分的样式 9.5 制作首页的底部 9.6 首页的兼容问题 9.7 二级页面的制作 9.7.1 分析二级页面的效果图 9.7.2 制作二级页面中间内容部分的结构 9.7.3 制作二级页面中间内容部分的样式 9.7.4 制作二级页面右侧部分的结构 9.7.5 制作二级页面右侧部分的样式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值