素材牛VIP会员
css垂直居中的问题
 雨***梦  分类:Html5  人气:1610  回帖:12  发布于6年前 收藏

在不给p标签任何高度和宽度的前提下,如何使“垂直居中”这几个文字显示在屏幕的正中央?

<!DOCTYPE HTML>
<html lang="en-US">
<head>
	<meta charset="UTF-8">
	<title></title>
</head>
<body>
	<p>垂直居中</p>
</body>
</html>

尽量不用js

 标签:csshtmlhtml5

讨论这个帖子(12)垃圾回帖将一律封号处理……

Lv2 入门
13***22 JAVA开发工程师 6年前#1

1、table-cell方法,ls有讲

2、如果知道子元素高度的话,可以有另一种好点的办法。假设子元素高度是100px。可以把父元素设为position: relative;然后父元素和子元素中间加一层position: absolute; top: 50%的div;最后最里面的子元素position: relative; top: -50px;

3、如果不用担心浏览器兼容性的话,可以用CSS transform(但是IE6-8不支持)。类似方法二,但是不需要知道元素高度。子元素最后向上平移(translate) 50%即可。

Lv5 码农
谁***哥 Web前端工程师 6年前#2

用CSS盒式模型。我没有尝试过,兼容性不好。

Lv5 码农
Am***ze JS工程师 6年前#3
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<style>
html, body {
	height:100%;
	padding:0;
	margin:0
}
#floater {
	height:50%;
	margin-bottom:-150px;
	position:relative;
}
p {
	background:#933;
	height:300px;
	position:relative;
}
</style>
</head>

<body>
<div id="floater"> </div>
<p>垂直居中</p>
</body>
</html>
Lv4 码徒
飞***飞 产品经理 6年前#4

p{
margin:0 auto;}

Lv2 入门
熊***子 学生 6年前#5

好像看见kejun在微博上提过这种写法,用button标签,里面的内容默认就是水平垂直居中的,当然需要定义button样式。

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>使用button垂直水平居中</title>
<style type="text/css">
html,body,button{width: 100%;height: 100%;margin: 0;padding: 0;}
</style>
</head>
<body>
<button><p>wording</p></button>
</body>
</html>
Lv3 码奴
黑***枯 PHP开发工程师 6年前#6

来个不一样的,去360面试的时候没答出来,被鄙视了,现在写个正确的

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<style>
    div {width:200px;height: 200px;background-color: red; position: absolute;left: 0;top: 0;right:0 ;bottom: 0;margin: auto;}
</style>
<body>

    <div></div>
</body>
</html>
Lv4 码徒
c2***31 交互设计师 6年前#7

HTML:

<!DOCTYPE HTML>
<html lang="en-US">
<head>
        <meta charset="UTF-8">
        <title></title>
</head>
<body>
    <div id="c">    
        <p>垂直居中</p>
    </div>
</body>
</html>​

CSS:

#c {
    display:table;
    height:400px;
}

#c p {
    display: table-cell;
    vertical-align: middle;
}

http://jsfiddle.net/dGyuC/2/
不用js的话我只能想到这个了。

Lv4 码徒
sy***88 软件测试工程师 6年前#8

忍不住想来回答下。对于不固定宽高的元素要居中的方法:父类div设置text-align:center.该需要居中的元素设置display:inline-block

Lv5 码农
黑***黑 Web前端工程师 6年前#9

看这里,通用方案。
https://github.com/sofish/Alice/blob/...

Lv6 码匠
爱***粉 移动开发工程师 6年前#10

Tivon的方案不错,改进一下:

https://gist.github.com/4326240

呃,有没有办法直接嵌入gist的?

上一页12下一页
 文明上网,理性发言!   😉 阿里云幸运券,戳我领取