CSS布局---居中方法

在web页面布局中居中是我们常遇到的情况,而居中分为水平居中与垂直居中

文本的居中

CSS中对文本的居中做的非常友好,我们是需要text-align, line-height 两个属性就可以控制文本的水平以及垂直居中

<head>
    <style type="text/css">
        .text {
            width: 200px;
            height: 200px;
            border: 1px solid green;
            text-align: center;
            line-height: 200px;
        }
    </style>
</head>
<body>
    <div class="text">文本的水平垂直居中</div>
</body>
</html>

注意:line-height属性控制文本的垂直方向居中时 只使用单行文本的情况,多行文本时不能采用次方法

元素的居中

在CSS 中对于元素的居中,相信写过CSS的同学对于其中的垂直居中都觉得非常苦恼,下面我们来看下实现居中的几种方法

方法一:

使用display:table-cell 来居中,通过display:table-cell 来把他模拟成一个表格的单元格,利用表格的居中特性

<head>
    <style type="text/css">
        .parent {
            display: table-cell;
            width: 200px;
            height: 200px;
            vertical-align: middle;
            text-align: center;
            border: 1px solid red;
        }
        .child {
            display: inline-block;
            background-color: #33F;
        }

    </style>
</head>
<body>
    <div class="parent">
        <div class="child">元素的水平居中</div>
    </div>
</body>
</html>

注意:当前方法兼用 IE8+ 谷歌,火狐等

方法二:

使用绝对定位来居中,原理为设置定位元素的left与top为50%,但是这时候元素还不是居中的,因为坐标计算是根据元素的左上角的顶点计算的

所以相对中间的位置偏移了元素宽度/高度一半的距离,不过我们只需要设置元素的margin-top,margin-left 为负值就行了,值为元素宽/高的一半

<head>
    <style type="text/css">
        .parent {
            position: relative;
            width: 200px;
            height: 200px;
            border: 1px solid green;
        }
        .child {
            margin-left: -50px;
            margin-top: -50px;
            position: absolute;
            top: 50%;
            left: 50%;
            width: 100px;
            height: 100px;
            background-color: #33F;
        }
    </style>
</head>
<body>
    <div class="parent">
        <div class="child"></div>
    </div>
</body>
</html>

注意: 此方法只能使用宽度高度已知的元素

方法三:

另一种绝对定位的方法

<head>
    <style type="text/css">
        .parent {
            position: relative;
            width: 200px;
            height: 200px;
            border: 1px solid green;
        }
        .child {
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            margin: auto;
            width: 50px;
            height: 50px;
            background-color: #33F;
        }
    </style>
</head>
<body>
    <div class="parent">
        <div class="child"></div>
    </div>
</body>
</html>

注意:此方法也是只适用于有元素有固定宽高的情况,而且只支持IE9+ 谷歌,火狐等符合w3c标准的“现代浏览器”

时间: 2024-10-17 17:46:06

CSS布局---居中方法的相关文章

css 元素居中方法

目前知道有两种方法 方法一:主要适用于元素未设定高度的情况下. 直接上代码 html: 1 <div class="nav-content"> 2 <ul ng-click="navItem($event)" ng-model="navType"> 3 <li id="nav_msglist"> 4 <a href="#/">消息列表</a> 5

css常见居中方法

在css布局中,居中占着很关键的作用,如果不能很好的运用居中,就会导致整个页面的混乱. 在实际页面布局中,居中的方法有很多,有很多简单实用的方法,也有老实的方法.刚开始写页面的时候,我比较喜欢用老实的方法去写,因为不会错,但我们也应该掌握常见的居中方法. 常见居中方法: text-align:center 在父容器里水平居中 inline文字,或inline元素. vertical-ailgn:middle 垂直居中 inline文字,inline元素,配合display:table,displ

HTML布局居中方法

居中方法 1.固定值居中: 需要居中的内容在父级盒子内设置固定的margin或 padding值使内容居中 缺点:若父级宽度改变将不会居中 2.自适应居中 1. left:50%; top:50%; margin-left:50%;/*本身内容宽度的一半*/ margin-top:50% 2.(万能居中法) left:0; right:0; bottom:0; top:0; margin:auto; ###(初学者)若有错误请大家联系我QQ907668044

【CSS】css各种居中方法

水平居中的text-align:center 和 margin:0 auto 这两种方法都是用来水平居中的,前者是针对父元素进行设置而后者则是对子元素.他们起作用的首要条件是子元素必须没有被float影响,否则一切都是无用功.margin:0 auto 也可以被写成margin:0 auto 0 auto.不能理解的童鞋们可以自己去找找关于css缩写的内容. 垂直居中的line-height 什么?!margin在垂直居中里不起作用了?显然事情确实如此,我们仅有margin:0 auto的用法而

[转载]CSS各种居中方法

水平居中的text-align:center 和 margin:0 auto 这两种方法都是用来水平居中的,前者是针对父元素进行设置而后者则是对子元素.他们起作用的首要条件是子元素必须没有被float影响,否则一切都是无用功.margin:0 auto 也可以被写成margin:0 auto 0 auto.不能理解的童鞋们可以自己去找找关于css缩写的内容. 垂直居中的line-height 什么?!margin在垂直居中里不起作用了?显然事情确实如此,我们仅有margin:0 auto的用法而

CSS各种居中方法(转)

水平居中的text-align:center 和 margin:0 auto 这两种方法都是用来水平居中的,前者是针对父元素进行设置而后者则是对子元素.他们起作用的首要条件是子元素必须没有被float影响,否则一切都是无用功.margin:0 auto 也可以被写成margin:0 auto 0 auto.不能理解的童鞋们可以自己去找找关于css缩写的内容. 垂直居中的line-height 什么?!margin在垂直居中里不起作用了?显然事情确实如此,我们仅有margin:0 auto的用法而

CSS各种居中方法

水平居中的text-align:center 和 margin:0 auto 这两种方法都是用来水平居中的,前者是针对父元素进行设置而后者则是对子元素.他们起作用的首要条件是子元素必须没有被float影响,否则一切都是无用功.margin:0 auto 也可以被写成margin:0 auto 0 auto.不能理解的童鞋们可以自己去找找关于css缩写的内容. 垂直居中的line-height 什么?!margin在垂直居中里不起作用了?显然事情确实如此,我们仅有margin:0 auto的用法而

上中下结构DIV CSS布局实例

实例布局之上中下结构DIV CSS布局 上中下结构为常见布局结构,一般普通(企业网站)网页我们可以大致分为上(头部).中(内容区).下(底部版权)组成.而这其实是由最简单上下结构CSS布局演变而成,只不过多了一个DIV层结构而且,本质布局方法技巧不变. 一.主要思维   -   TOP 不管多少个上下结构或单一结构,一般主体内容都是居中的,这个使用就需要使用css margin样式(让布局居中兼容各大浏览器),同时一般网页都会固定宽度,也就是要使用css width设置好每个DIV层宽度. 这里

css012 css布局简介

css012  css布局简介 一.    网页布局的类型 网页布局的类型 1.固定宽度 2.流式 3.相应式web设计 二.    如何进行css布局 1.强大的<div>标签 网页的html代码数量应该尽可能减到最少,尤其是div标签的嵌套,当使用div标签有助于网页布局设计时,就很好用.但是并不是div嵌套的越多越好. 2.html5的分区元素 <div>  用于分割区域,块级元素 <span> 行内分区元素 <article> 给网页或者网页的分区提