css中absolute使用,用position和transform是div里面的div垂直居中

        我以前看的一本书上是这么写的如果一个div的position属性为absolute那么这个div不会受页面的其他元素影响,直接基于页面定位这是错误的。看w3c,用google查positon absolute ,别用百度翻译的不准。介绍网址点击打开链接

 其中一句话

absoluteThe element is positioned relative to its first positioned (not static) ancestor element

一.解释absolute用法。

 解释:这个元素的定位是相对于第一个postiion属性不是static的父类元素定义的

例子:页面

html代码:

<!doctype html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <meta name="author" value="hanghang"/>
    <link type="text/css" rel="stylesheet" href="pc/customer/css/frame.css">
    <script type="text/javascript" src="pc/customer/js/common.js"></script>
    <title>爱家乐</title>
</head>
<body>
<div id="top">
    <div id="topbody" style="margin: 0 auto">
        <p class="left">

            <span id="favorite">
                <img src="pc/customer/image/favorite.png">
                <a href="javascript:void(0)" οnclick="addFavorite()">收藏本站</a></span>
        </p>
        <p class="right" id="topRight">
            <!--你好要改成人名-->
            你好,欢迎光临本店!
            <span id="loginInfo"><a href="">登录</a><small>|</small><a href="">免费注册</a></span>
            <!--<span id="loginInfo"><a href="">退出</a><small>|</small><a href="">免费注册</a></span>-->
        </p>
    </div>
</div>
<div id="header">
    <div id="headerLeft">
        <div class="logoImage"></div>
        <div class="logoFont">爱家乐</div>
    </div>
    <div id="headerMiddle"></div>
    <div id="headerRight"></div>
</div>
<div id="nav">

</div>
<div id="content"></div>
<div id="footer"></div>
</body>
</html>
关键css:

#header {
    position: relative;
    height: 80px;
}

#headerLeft {
    border: solid 2px black;
    float: left;
    /*vertical-align: middle;*/
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    margin-left: 10%;
    height: 50%;
    width: 10%;
}

.logoImage {
    float: left;
    border: solid 2px black;
    position: relative; /*在float中必须relative*/
    top: 50%;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    height: 50%;
    width: 20%;
}
其中id为leftHeader的div设置的position属性为absolute,top为50%这个是相对他的设有 position:relative父标签来定位的。

二.垂直居中:

设置

position: relative; /*在float中必须relative*/
    top: 50%;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);

就可以垂直居中了支持IE9以上解析

还有一种简单的方式里面的div的css的style为

 margin: auto;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
兼容ie8

详细请看点击打开链接

相关div的文字垂直居中点击打开链接




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值