css样式—字体垂直、水平居中
“来,老板娘,给个div瞅瞅”:
“好的,宇哥,来了了了”:
<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。这样的话要注意浏览器兼容性问题。
css样式—字体垂直、水平居中的更多相关文章
- CSS样式—— 字体、元素的垂直水平居中
1.CSS样式与HTML中标签属性的区别: 标签的属性是采用 属性名=“属性值” 表示的 CSS样式是采用名值对 属性名:属性值: 表示的 2.内联元素(行内元素)与块元素 (1)内联元素及其特点: ...
- 使用Sass优雅并高效的实现CSS中的垂直水平居中(附带Flex布局,CSS3+SASS完美版)
实现css水平垂直居中的方法有很多,在这里我简单的说下四种比较常用的方法: 1.使用CSS3中的Flex布局 对于flex,我们要了解的是它是一个display的属性,而且必须要给他的父元素设置fle ...
- 【css】图片垂直水平居中
一.已知宽高的图片实现垂直水平居中 1.借助margin-top负边距实现垂直居中 <!DOCTYPE html> <html> <head> <meta c ...
- 纯CSS实现元素垂直水平居中-非固定宽度
这里不讨论行内元素的居中!! 盒子垂直居中+水平居中的需求时经常遇到的,看到的较多实现逻辑是固定content-box的宽度,通过让margin-left和margin-top等于宽或高的负一半来实现 ...
- 纯CSS完美实现垂直水平居中的6种方式
前言 由于HTML语言的定位问题,在网页中实现居中也不是如word中那么简单,尤其在内容样式多变,内容宽高不定的情况下,要实现合理的居中也是颇考验工程师经验的.网上讲居中的文章很多,但是都不太完整,所 ...
- 三、CSS样式——字体
概念: CSS字体属性定义文本的字体系列.大小.加粗.风格和变形. 属性 描述 font-family 设置字体系列 font-size 设置字体的大小 font-style 设置字体的风格 font ...
- css样式writing-mode垂直书写测试
writing-mode:控制文字的属性方向,但是不是所有的浏览器都兼容,在网页上使用时,有的浏览器显示不出该样式.该文测试的是垂直书写:网上对于测试的属性值的解释是:tb-rl:上-下,右-左.对象 ...
- css实现容器垂直水平居中的七中方法
方法一:position加margin 方法二: diaplay:table-cell 方法三:position加 transform 方法四:flex;align-items: center;jus ...
- 移动端toast 提示,HTML css 全屏垂直水平居中
随机推荐
- db2中报SQLCODE=-530, SQLSTATE=23503错误
今天在写一个增加操作时,报错信息如下:SQLCODE=-530, SQLSTATE=23503,该sqlcode说明:“对特定的约束名指定了无效的外健值”. 项目中用的框架是SSH,新增的主对象有多个 ...
- 获取http请求响应头
一直都是在给服务器端发送请求的时候可能会出现设置头文件的情况,但这次获取HTTP 返回的头文件,着实让我纠结一番,但最终还是实现了,总结一下.(PS:其实最后方法很简单,只是分享一下纠结过程) 先看一 ...
- 用css解决iframe的自适应问题(跨域下同样有用)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...
- IOS-MVC的使用
1.Model不允许和Controller,View打交道.也就是Model根本不知道谁会用自己,Model中不能有任何对 Controller和View的引用.正所谓:Don't call me, ...
- 如何将Js代码封装成Jquery插件
很多相同的Jquery代码会在很多页面使用,每次都复制粘贴太麻烦了,不如封装成一个Jquery插件就方便了,至于影响网页的速度不,我就没有测试了哈. 代码如下 这是一个自定闪烁打印文字的Jquery特 ...
- codevs 1080 线段树练习
链接:http://codevs.cn/problem/1080/ 先用树状数组水一发,再用线段树水一发 树状数组代码:84ms #include<cstdio> #include< ...
- bnu24252 海盗分赃
题目链接:http://www.bnuoj.com/v3/problem_show.php?pid=24252 这是四川2012年省赛的一道题,背景:海盗分宝藏.大概题意:给你N种价值的物品,物品有两 ...
- Dubbo应用与异常记录
结合项目里使用暴露出的问题,对并发较多的核心业务或者对请求失败等敏感的业务场景不太建议使用Dubbo, 如电商的购买等行为,使用Dubbo就必须阅读源码,熟悉相关机制,或者直接自己造轮子. >& ...
- Asp.net窄屏页面 手机端新闻列表
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SearchNotice.a ...
- 重温WCF之会话Session(九)
转载地址:http://blog.csdn.net/tcjiaan/article/details/8281782 每个客户端在服务器上都有其的独立数据存储区,互不相干,就好像A和服务器在单独谈话一样 ...