水平居中——行内元素、定宽块、不定宽块

声明:来自http://www.imooc.com/learn/9 学习

行内元素

如果被设置元素为文本、图片等行内元素时,水平居中是通过给父元素设置 text-align:center 来实现的。

定宽块状元素

满足定宽和块状两个条件的元素是可以通过设置“左右margin”值为“auto”来实现居中的。

1 margin:0 auto;

不定宽块状元素

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

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

1.HTML代码:

 1 <div>
 2 <table>
 3   <tbody>
 4     <tr><td>
 5     <ul>
 6         <li><a href="#">1</a></li>
 7         <li><a href="#">2</a></li>
 8         <li><a href="#">3</a></li>
 9     </ul>
10     </td></tr>
11   </tbody>
12 </table>
13 </div>

CSS代码:

1 table{
2     margin:0 auto;
3 }
4 ul{list-style:none;margin:0;padding:0;}
5 li{float:left;display:inline;margin-right:8px;}

2.

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,变成了行内元素,所以少了一些功能,比如设定长度值。

3.HTML代码

通过给父元素设置 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,带来了一定的副作用。

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

时间: 2024-08-24 05:35:07

水平居中——行内元素、定宽块、不定宽块的相关文章

块级元素和行内元素的区别,常见的块级元素和行内元素有哪些

一般来说,html的元素分为两种,即块级元素和行内元素. 块级元素:块状元素排斥其他元素与其位于同一行,可以设定元素的宽(width)和高(height),块级元素一般是其他元素的容器,可容纳块级元素和行内元素. 行内元素:行内元素不可以设置宽(width)和高(height),但可以与其他行内元素位于同一行,行内元素内一般不可以包含块级元素.行内元素的高度一般由元素内部的字体大小决定,宽度由内容的长度控制. 常见块级元素有:h1,h2,h3,h4,h5,h6,p,div,dl,dt,hr,ol

盒子模型,块级元素和行内元素特性与区别

盒子模型 css盒子模型分为两种,一种是遵循w3c标准的标准盒子模型,另外一种就是IE盒子模型. 标准盒子模型 IE盒子模型 通过上面两张图可以看出,两种盒子模型都包括padding,margin,border,content,但是ie盒子模型的content包括border和padding. 一个例子 一个盒子的 margin 为 20px,border 为 1px,padding 为 10px,content 的宽为 200px.高为 50px. 标准盒子模型 盒子需要占据的位置为:宽 20

前端面试题-行内元素和块级元素

一.行内元素 一个行内元素只占据它对应标签的边框所包含的空间. 二.块级元素 块级元素占据其父元素(容器)的整个空间,因此创建了一个"块".通常浏览器会在块级元素前后另起一个新行. 三.行内元素示例 HTML CSS Example 四.块级元素示例 HTML CSS Example 五.行内元素的特点 5.1 和其他元素都在同一行上 5.2 高,行高及外边距和内边距不可改变 5.3 宽度就是它的文字或图片的宽度,不可改变 5.4 行内元素只能容纳文本或者其他行内元素 5.5 设置行内

HTML中块级元素和行内元素的总结和区分。

摘自: https://www.cnblogs.com/yanqiu/p/8987126.html HTML标签 html标签定义: 是由一对尖括号包裹的单词构成,例如: <html>. 标签不区分大小写<html> 和 <HTML>, 推荐使用小写. 标签分为两部分: 开始标签<html> 和 结束标签</html>, 两个标签之间的部分我们叫做标签体. 有些标签功能比较简单,使用一个标签即可,这种标签叫做自闭和标签,例如: <br/&g

块级元素和行内元素的区别

1.块级元素可以设置宽度和高度属性,而行内元素不行: 2.块级元素:display:block; 而行内元素:display:inline; 3.块级元素可以设置margin.padding,而行内元素水平方向margin-left.margin-right.padding-left和padding-right可以有效,竖直方向上的margin-top.margin-bottom.padding-top和padding-bottom不能生效: 4.块级元素可以独占一行,而行内元素不会独占一行.

CSS中块级元素和行内元素

文档流 将窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素,即为文档流. 每个非浮动块级元素都独占一行, 浮动元素则按规定浮在行的一端. 若当前行容不下, 则另起新行再浮动. 内联元素也不会独占一行. 几乎所有元素(包括块级,内联和列表元素)均可生成子行, 用于摆放子元素. 有三种情况将使得元素脱离文档流而存在,分别是浮动,绝对定位, 固定定位. 但是在IE中浮动元素也存在于文档流中(还让我觉得这样很合理><). 浮动元素不占任何正常文档流空间,而浮动元素的定位还是基于正常的文档流

块级元素与行内元素(内联元素)的区别和联系

在css盒子模型中,我们提到了html元素中的块元素(block element)和内联元素(inline element).那么它们究竟是什么呢? 其实,这两种元素都是html规范中的概念.块元素(block element)一般是其他元素的容器元素,能容纳其他块元素或内联元素.最常见的就是P和div这两个,说的简单点,块元素就好比一个四方块,可以放其 他的四方块,并可以呈现在页面上任何地方.默认情况下块元素,是独占一行的.常见的块元素:div.h1-h6标题.form(只能用来容纳其他块元

关于盒子模型以及块元素和行内元素

盒子模型,盒子模型算是页面比较经典的一个概念了,所有的页面元素和div都能称之为一个盒子,每个盒子都具备:内容(content),填充(padding  也称之为内边距),边框(border),边界(margin  也称之为外边距):下面有一张盒子模型的图片: 说白了这个盒子模型让你知道你需要效果式需要调整哪个位置的内外边距以及边框的样式: 行内元素和块元素: 行内元素,又称为内联元素,行内元素在本行内可以容纳文本和其他行内元素,常见行内元素<span><a>等; 块元素,块元素不

css基础:块级元素与行内元素

块级元素与行内元素的概念 块级元素一般是内容的容器,可以设置宽度和高度.而行内元素则不行,行内元素只能包含内容和其他行内元素,而块级元素可以包含行内元素和其他块级元素, 块级元素可以设置margin.padding,而行内元素水平方向margin-left.margin-right.padding-left和padding-right可以有效, 竖直方向上的margin-top.margin-bottom.padding-top和padding-bottom不能生效 占据整个父级元素.通俗的来讲