水平居中总结

水平居中总结-不定宽块状元素方法(一)

在实际工作中我们会遇到需要为“不定宽度的块状元素”设置居中,比如网页上的分页导航,因为分页的数量是不确定的,所以我们不能通过设置宽度来限制它的弹性。

不定宽度的块状元素有三种方法居中(这三种方法目前使用的都比多):

  1. 加入 table 标签
  2. 设置 display;inline 方法
  3. 设置 position:relative 和 left:50%;

这一小节我们来讲一下第一种方法:

第一步:为需要设置的居中的元素外面加入一个 table 标签 ( 包括 <tbody>、<tr>、<td> )。

第二步:为这个 table 设置“左右 margin 居中”(这个和定宽块状元素的方法一样)。

举例如下:

html代码:

<div>
<table>
  <tbody>
    <tr><td>
    <ul>
        <li><a href="#">1</a></li>
        <li><a href="#">2</a></li>
        <li><a href="#">3</a></li>
    </ul>
    </td></tr>
  </tbody>
</table>
</div>

css代码:

<style>
table{
    margin:0 auto;
}

ul{list-style:none;margin:0;padding:0;}
li{float:left;display:inline;margin-right:8px;}
</style>

水平居中总结-不定宽块状元素方法(二)

第二种方法:改变块级元素的 dispaly 为 inline 类型,然后使用 text-align:center 来实现居中效果。如下例子:

html代码:

<body>
<div class="container">
    <ul>
        <li><a href="#">1</a></li>
        <li><a href="#">2</a></li>
        <li><a href="#">3</a></li>
    </ul>
</div>
</body>

css代码:

<style>
.container{
    text-align:center;
}
.container ul{
    list-style:none;
    margin:0;
    padding:0;
    display:inline;
}
.container li{
    margin-right:8px;
    display:inline;
}
</style>

这种方法相比第一种方法的优势是不用增加无语义标签,简化了标签的嵌套深度,但也存在着一些问题:它将块状元素的 display 类型改为 inline,变成了行内元素,所以少了一些功能,比如设定长度值。

水平居中总结-不定宽块状元素方法(三)

方法三:通过给父元素设置 float,然后给父元素设置 position:relative 和 left:50%,子元素设置 position:relative 和 left:-50% 来实现水平居中。

代码如下:

<body>
<div class="container">
    <ul>
        <li><a href="#">1</a></li>
        <li><a href="#">2</a></li>
        <li><a href="#">3</a></li>
    </ul>
</div>
</body>

css代码:

<style>
.container{
    float:left;
    position:relative;
    left:50%
}

.container ul{
    list-style:none;
    margin:0;
    padding:0;

    position:relative;
    left:-50%;
}
.container li{float:left;display:inline;margin-right:8px;}
</style>

这种方法可以保留块状元素仍以 display:block 的形式显示,优点不添加无语议表标签,不增加嵌套深度,但它的缺点是设置了 position:relative,带来了一定的副作用。

这三种方法使用得都非常广泛,各有优缺点,具体选用哪种方法,可以视具体情况而定。

2015-04-15 22:16:35

可以参考文章:

无双

http://www.cnblogs.com/2050/p/3392803.html

慕课:http://www.imooc.com/code/6363

时间: 2024-10-26 10:23:25

水平居中总结的相关文章

div水平居中

1.先给它外层的div定位并left:position:absolute;left:50%; 2.获取当前元素div的宽度,并除以2 3.改变它的css:margin-left:-(获取当前元素div的宽度除以2). function width(obj){ obj.each(function(){ var pagingWidth=$(this).width(); //分页div水平居中 $(this).css('margin-left',-pagingWidth/2); }); } width

html中块元素的垂直水平居中。及兼容性

块在块中垂直居中(position:absolute; top:50%; margin-top:-二分之一高度) 块在块中水平居中 (子元素设置margin:0 auto 或auto) 用方法1将垂直水平同时居中 #box { width: 100px; height: 80px; background-color: gray; position:absolute; top:50%; left:50%; margin-top:-40px;<!--向上高度一半--> margin-left:-5

&lt;转载&gt;使CSS文字图片div元素居中方法之水平居中的几个方法

文字居中,文字垂直居中水平居中,图片居中,图片水平居中垂直居中,块元素垂直居中?当我们在做前端开发是时候关于css居中的问题是很常见的.情 况有很多种,不同的情况又有不同的解决方式.水平居中的方式解决的时候相对来说通过css比较容易设置,垂直居中相对比较棘手. 先来说一下水平居中的不同情况与不同解决方法吧. 1文本,图片等行内元素的水平居中方法呢比较简单.直接给父元素设置一个text-align:centent属性就可以实现元素的水平居中了. 2 确定宽度的块级元素水平居中怎么设置呢?设置方法也

16种方法实现水平居中垂直居中

时间:2017-04-24 00:09:58      阅读:29      评论:0      收藏:0      [点我收藏+] 转载下别人收集的定位方法,写的比较详细,比如子元素定位要先考虑父元素的是行内元素还是块内元素,transform灵活运用等等. 水平居中 1) 若是行内元素, 给其父元素设置 text-align:center,即可实现行内元素水平居中. 2) 若是块级元素, 该元素设置 margin:0 auto即可. 3) 若子元素包含 float:left 属性, 为了让子

水平居中与垂直居中

一.水平居中 1)如果是行内元素,需要在它的父元素上设置text-align: center; 2)如果是块元素,直接设置元素的css属性text-align: center; 或则可以定宽再加上margin:0 auto; p{           width: 300px;          margin:0 auto;        }     p{margin:auto;} 二.垂直居中 垂直居中的时候情况会比较多,根据不同的情况分别有下列几种方法 1)表格布局法------不用知道需要

垂直和水平居中方法小结

水平居中 行内元素 text-align:center; 块元素 1.定宽块元素水平居中 margin:0 auto; 2.不定宽块元素水平居中 方法一:利用浮动的包裹性和百分比相对定位 <div class='outer'> <div class='inner'></div> </div> 我们想要使inner(不定宽)水平居中于outer,能够这么做: 先在inner外面再加一层div: <div class='outer'> <div

盘点8种CSS实现垂直居中水平居中的绝对定位居中技术

1.绝对定位居中(Absolute Centering)技术 我们经常用margin:0 auto;来实现水平居中,而一直认为margin:auto;不能实现垂直居中......实际上,实现垂直居中仅需要声明元素高度和下面的CSS: .Absolute-Center { margin : auto ; position : absolute ; left : 0 ; right : 0 ; top : 0; bottom: 0; } 优点: 1.支持跨浏览器,包括IE8-IE10: 2.无需其他

各种效果,水平居中或者是垂直居中

(1)水平居中行内元素:text-align:center; (2)当被设置元素为块状元素时用text-align:center就不起作用了,这时也分为两种情况:定宽(有width值)块状元素和不定宽块状元素 满足 定宽 和 块状 两个元素 是可以通过设置左右margin值为auto 来实现居中的 比如 margin{0,auto} (3)被设置元素为不定宽块状元素时 改变块状元素的display为inline类型(设置为行内元素显示),然后使用 text-align:center 来实现水平居

CSS样式—— 字体、元素的垂直水平居中

1.CSS样式与HTML中标签属性的区别: 标签的属性是采用 属性名="属性值" 表示的 CSS样式是采用名值对 属性名:属性值: 表示的 2.内联元素(行内元素)与块元素 (1)内联元素及其特点:   所谓的行内元素,指的是只占自身大小,不会独占一行          常见的内联元素:   a img iframe span           span没有任何语义,span标签专门用来选中文字,并对该文字设置样式 对内联元素设置宽高是无效的,也不可以设置行高,其宽度和高度都默认被元

水平居中设置

行内元素:如果被设置为 文本 图片等行内元素时 水平居中是通过父元素设置text-align:center:来实现的 块状元素:(定宽块状元素 块状元素的宽度width为固定值),通过设置左右margin值为auto 来实现居中: (不定宽度的块状元素),不定宽度的块状元素的width值不固定.三种方式居中:1.加入table标签 包括tr td 然后把table左右margin居中 2.改变块级元素display:inline 然后用text-align 3.通过父元素设置float 然后给父