css如何使div里面的文字垂直对齐

html-css037

css如何使div里面的文字垂直对齐,第1张

css中的vertical-align

属性设置元素的垂直对齐方式,可能的值:

baseline

默认。元素放置在父元素的基线上。

sub

垂直对齐文本的下标。

super

垂直对齐文本的上标

top

把元素的顶端与行中最高元素的顶端对齐

text-top

把元素的顶端与父元素字体的顶端对齐

middle

把此元素放置在父元素的中部。

bottom

把元素的顶端与行中最低的元素的顶端对齐。

text-bottom

把元素的底端与父元素字体的底端对齐。

%

使用

"line-height"

属性的百分比值来排列此元素。允许使用负值。

inherit

规定应该从父元素继承

vertical-align

属性的值。

如下代码即可实现垂直对其:

.img{vertical-align:bottom}

.input{vertical-align:bottom}

<p>

<img

class="img"

border="0"

src="/i/eg_cute.gif"

/>

<input

class="input"

/>

</p>

以下是让div中的内容垂直居中的具体操作方法:

1、首先我们准备好一个空的html结构的文档。

2、接下来我们要准备的是准备一个div用来放内容了,这里为了显示特意给div设置了边框。

3、接下来我们就在div中添加内容,如下图所示,运行后你会发现内容偏向于左上角。

4、下面我们给div设置水平居中,如下图所示,并且设置行高为div的高度,你会发现它水平垂直居中了。

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>水平+垂直居中</title>

<style type="text/css">

div {

font-family: "microsoft yahei"

border: 5px solid #cce800

}

.container {

width: 600px

padding: 10px

margin: 10px auto

background-color: gray

}

.vertical {

display: table-cell

height: 400px

padding: 5px

text-indent: 2em

vertical-align: middle

background-color: #cce8cf

border-radius: 5px

}

</style>

</head>

<body>

<!-- 外层这个是为了实现水平居中 -->

<div class="container">

<div class="vertical">

测试垂直居中,即便是多行,我也还是垂直居中对齐的。

<h3>问题分析:</h3>

<p>1.CSS中vertical-align这个属性只是对行级元素生效,div是块级元素,所以即使设置了此属性也不会生效。</p>

<p>2.Div可以通过display属性中的table-cell值由块级元素变为行级元素(这里你可以理解为Excel里的单元格),这样就支持vertical-align的垂直居中了。</p>

<p>3.扩张一点:如果是行级元素(例如span),也可以通过把height和line-height设置为相同值,这样也可以实现垂直居中,不过不符合你的要求,你了解即可。</p>

</div>

</div>

</body>

</html>下边是运行出来的效果:

问题分析:

1.

CSS中vertical-align这个属性只是对行级元素生效,div是块级元素,所以即使设置了此属性也不会生效。

2.

Div可以通过display属性中的table-cell值由块级元素变为行级元素(这里你可以理解为Excel里的单元格),这样就支持vertical-align的垂直居中了。

3.

扩展一点:如果是行级元素(例如span),也可以通过把height和line-height设置为相同值,这样也可以实现垂直居中,不过不符合你的要求,你了解即可。

另外哥推荐你用sublime写前端代码,灰常不错的一款编辑器,骚年,哥能帮你的就这么多了,剩下自己努力吧。