资讯专栏INFORMATION COLUMN

css元素居中方法归纳

Xufc / 2954人阅读

摘要:水平和垂直方向都可居中统一代码相同的代码抽取绝对定位注意点生成绝对定位的元素,相对于定位以外的第一个父元素进行定位。等不一定要设置为,只要和的值相等,即可实现水平居中。

水平和垂直方向都可居中

统一HTML代码:

相同的css代码抽取:

.inner{
    width: 50px;
    height: 50px;
    background-color: aqua;
}
.outer{
    border: 1px solid black; 
}
①、margin:auto && 绝对定位
.inner{
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
}
.outer{
    position: relative;
    width:100px;
    height: 100px;
}
注意点: 
①、absolute生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。
inner设置了absolute定位,所以要在outer设置relative,这样才能相对于outer进行相对定位,否则相对于body定位,因为默认是static定位。
left、right等不一定要设置为0,只要left和right的值相等,即可实现水平居中。
同理,top和bottom的值相等,即可实现垂直居中。
②、margin负值 && 相对定位
 .inner{
    position: relative;
    top: 50%;
    left: 50%;
    margin: -25px 0 0 -25px;         /* 外边距为自身宽高的一半 */ 
}
注意点: 
①、inner元素要设为relative
②、margin外边距为自身宽高的一半(负数)
③、CSS3 transform属性
.inner{
    position: relative;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
注意点: 
①、inner元素要设为relative
②、transform 属性向元素应用 2D 或 3D 转换,translate(x,y) 定义 2D 转换
④、css3 flex布局
.outer{
    display: flex;
    align-items: center;         /* 垂直居中 */
    justify-content: center;    /* 水平居中 */
}
仅水平方法居中的方法 ①、margin: 0 auto
.inner{
    margin: 0 auto;
}
②、text-align: center
.outer{
    text-align: center;
}
.inner{
    display: inline-block;
}

最后在本文末尾还会提到 定位对于元素特征的改变
在介绍css元素居中方法之前,我们有必要认识一下元素的三种类型

html元素有三种类型:
①、块状元素: 如div -------- display:block  
②、内联元素: 如span ------display:inline
③、内联块元素:如input ---- display:inline-block

块状元素特征:
(1)能够识别宽高
(2)margin和padding的上下左右均对其有效
(3)可以自动换行
(4)多个块状元素标签写在一起,默认排列方式为从上至下

行内元素特征:
(1)设置宽高无效
(2)对margin仅设置左右方向有效,上下无效;padding设置上下左右都有效,即会撑大空间
在IE7的时候,padding-top 和 padding-bottom无效
(3)不会自动进行换行

行内块状元素特征:
(1)不自动换行
(2)能够识别宽高
(3)默认排列方式为从左到右

在position设置为 fixed或者absolute的时候,元素会脱离文档流
*此时对于行内元素来说可以设置宽高

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/117228.html

相关文章

  • css学习归纳总结(三)

    摘要:也就是说,较宽的外边距决定两个元素最终离多远。盒模型结论二没有设定属性的元素始终会扩展到填满其父元素的宽度为止。布局的基本概念多栏布局有三种基本的实现方案固定宽度流动弹性。 为文档添加样式的三种方法 行内样式 行内样式是写在HTML标签的style属性里的,比如: Hello Everyone! 行内样式会覆盖嵌入样式和链接样式。 嵌入样式 嵌入的css样式是放在HTML文档...

    Drummor 评论0 收藏0
  • CSS元素居中

    摘要:多个块级元素按行放置将块级元素设置为行内元素父元素内容居中。块级元素使用绝对定位。需要知道子元素的高度。水平垂直居中思路跟之前一样。 水平方向 行内元素 .center-children { text-align: center; } 适用于行内元素,行内块元素。 块级元素 .center-children { margin: 0 auto; } margin左右设置为auto...

    wapeyang 评论0 收藏0
  • html和css常见的一些问题总结

    摘要:至于说,,,属性是脱离文档流的,这个估计也是我们刚开始用得最多的,最方便的一个,同时也会给我们带来许多问题,这一次你会发现与前面的,有相同的地方,都是覆盖,不同的是,里文字被挤出来,这也是之前主要是用来做文字环绕效果有关。 html 标签 一般在html有块级元素和行级元素,主要的块级元素有 div,p,h1-h6,ul,ol,li,dl,dt,dd,table,tr,th,td,有...

    EddieChan 评论0 收藏0
  • html和css常见的一些问题总结

    摘要:至于说,,,属性是脱离文档流的,这个估计也是我们刚开始用得最多的,最方便的一个,同时也会给我们带来许多问题,这一次你会发现与前面的,有相同的地方,都是覆盖,不同的是,里文字被挤出来,这也是之前主要是用来做文字环绕效果有关。 html 标签 一般在html有块级元素和行级元素,主要的块级元素有 div,p,h1-h6,ul,ol,li,dl,dt,dd,table,tr,th,td,有...

    chadLi 评论0 收藏0
  • css学习归纳总结(二)

    摘要:子选择器只对直接后代有影响的选择器,而对孙子后代以及多层后代不产生作用。烂透了尽可能使用复合语法糟糕好的避免不必要的重复糟糕好的组织好的代码格式代码的易读性和易维护性成正比。 标签与元素 标签和p元素有什么区别呢?大多数时候他们表示的是同一样东西,但仍有细微的区别。、等指的是HTML分隔符,而元素则是由一对开始结束标签构成的,用来包含某一些内容 子选择器和后代选择器的区别: 后代选择器...

    KnewOne 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<