css实现居中,css各种居中

http://www.itjxue.com  2023-01-06 06:31  来源:未知  点击次数: 

【css】居中方案

前言:根据最近学习的课程,简单总结一下学习到的css左右布局以及居中方案。后期学习深入之后再回来进行css居中的完整总结。

给所有子元素添加 float: left ,给父元素加 clearfix 类,清除浮动

html:

css:

将内联元素外部的块级元素的 text-align 设置为 center ,即可实现内联元素( inline 、 inline-block )的水平居中。

演示

将固定宽度的块级元素的 margin-left 和 margin-right 设置为 auto ,即可实现块级元素的水平居中。

演示

将每个块级元素的 display 设置为 inline-block ,然后将它们的父容器的 text-align 设置为 center ,即可使多个块级元素水平居中。

演示

设置内联元素的行高( line-heigt )和内联元素的父元素的高度( height )相等,且内联元素的字体大小远小于行高,即可使内联元素垂直居中。

演示

通过绝对定位元素距离顶部50%,并设置margin-top向上偏移元素高度的一半,即可实现垂直居中。

演示

借助CSS3中的transform属性向Y轴反向偏移50%的方法实现垂直居中

演示

CSS div居中的几种方法

CSS实现div垂直居中的方法有很多,下面div居中的几种方法是自己平时写网页中经常用到的,最常见的例子就是登录注册弹出框。

方法一:对div使用绝对布局position:absolute;并设置top,left,right,bottom的值相等,但不一定都等于0;并且设置margin:auto。

方法二:这个方法要知道div的宽度和高度。对div使用绝对布局position:absolute;并把top和left的值都设置为50%;50%就是指页面窗口的宽度和高度的50%;最后将div左移和上移,左移和上移的大小为div宽度和高度的一半。

其中 margin-left:-100px 和 margin-top:-100px 可以写成 margin:-100px ?0px ?0px ?-100px

方法三:div使用绝对定位position:absolute,并且设置left和top的值都为50%。使用css3的transform属性。transform:translate(-50%,-50%)。

以上3种方法的效果如下显示

若有两个div,里面小的div相对于外面大的div水平垂直居中对齐,有以下几种方法。

方法一:利用position和margin:auto实现。父元素设置position:relative;子元素设置position:absolute,并设置top,left,right,bottom值相等。

方法二:使用position。父元素设置position:relative;子元素设置position:absolute。并设置top和left为50%,并设置左移和上移为子元素的大小的一半。

方法三:使用display:flex。这种方法需要设置浏览器的兼容性。

方法四:使用transform:translate()。父元素设置position:relative;子元素设置position:absolute。并设置top和left为50%。最后设置transform:translate(-50%,-50%)。

以上四种方法的效果图如下显示

今天就跟大家分享这么多~如果你有更好的方法,请在下方留言

CSS实现垂直居中的7种方法

HTML:

CSS:

重点:父容器高度和子元素line-height一样的数值,内容中的行内元素就会垂直居中。

HTML:

CSS:

重点:给父元素添加一个伪元素::before,让这个伪元素的div高度为100%,这样其他div就可垂直居中了,但div 本身就是块级元素,而vertical-align是行内元素属性,则需要修改为inline-block。

HTML:

CSS:

重点:在父元素中设置相对定位position: relative,子元素设置绝对定位 position: absolute;top和left相对父元素的50%,与其搭配的 transformse: translate(-50% , -50%)表示X轴和Y轴方向水平居中。

HTML:

CSS:

重点:子元素绝对定位position:absolute,父元素相对定位position: relative,将上下左右的数值都设置为0,同时margin:auto。绝对定位是会脱离文档流的,这点要注意一下。

HTML:

CSS:

重点:给父元素设置display: flex布局,水平居中 justify-content: center,垂直居中align-items: center。

HTML:

CSS:

重点:父元素position定位为relative,子元素position定位为absolute。水平居中同理。calc居中要减多少要结合到自己的宽高设置多少再进行计算。

HTML:

CSS:

重点:将父元素设置display:table,子元素table-cell会自动撑满父元素。组合 display: table-cell、vertical-align: middle、text-align: center完成水平垂直居中。

css怎么设置居中

水平居中

若是行内元素, 给其父元素设置 text-align:center,即可实现行内元素水平居中.

若是块级元素, 该元素设置 margin:0 auto即可.

若子元素包含 float:left 属性, 为了让子元素水平居中, 则可让父元素宽度设置为fit-content,并且配合margin, 作如下设置:

.parent{

width: -moz-fit-content;

width: -webkit-fit-content;

width:fit-content;

margin:0 auto;}

使用flex 布局, 可以轻松的实现水平居中, 子元素设置如下:

.son{

display: flex;

justify-content: center;}

使用CSS3中新增的transform属性, 子元素设置如下:

.son{

position:absolute;

left:50%;

transform:translate(-50%,0);}

使用绝对定位方式, 以及负值的margin-left, 子元素设置如下:

.son{

position:absolute;

width:固定;

left:50%;

margin-left:-0.5宽度;}

使用绝对定位方式, 以及left:0;right:0;margin:0 auto; 子元素设置如下:

.son{

position:absolute;

width:固定;

left:0;

right:0;

margin:0 auto;}

垂直居中

若元素是单行文本, 则可设置 line-height 等于父元素高度

若元素是行内块级元素, 基本思想是使用display: inline-block, vertical-align: middle和一个伪元素让内容块处于容器中央.

.parent::after, .son{

display:inline-block;

vertical-align:middle;}.parent::after{

content:'';

height:100%;}

元素高度不定

可用 vertical-align 属性, 而vertical-align只有在父层为 td 或者 th 时, 才会生效, 对于其他块级元素, 例如 div、p 等, 默认情况是不支持的. 为了使用vertical-align, 我们需要设置父元素display:table, 子元素 display:table-cell;vertical-align:middle;

用 Flex 布局

.parent {

display: flex;

align-items: center;}

可用 transform , 设置父元素相对定位(position:relative), 子元素如下css样式:

.son{

position:absolute;

top:50%;

-webkit-transform: translate(-50%,-50%);

-ms-transform: translate(-50%,-50%);

transform: translate(-50%,-50%);}

元素高度固定

设置父元素相对定位(position:relative), 子元素如下css样式:

.son{

position:absolute;

top:50%;

height:固定;

margin-top:-0.5高度;}

设置父元素相对定位(position:relative), 子元素如下css样式:

.son{

position:absolute;

height:固定;

top:0;

bottom:0;

margin:auto 0;}

css居中的几种方式

1.横向居中

(1)方法一

position:?fixed;

/*?居中对齐begin?*/

left:?50%;

/*?兼容老版本的方法?*/

-webkit-transform:?translateX(-50%);

transform:?translateX(-50%);

(2)方法二

设置固定宽度,并且设置margin:auto

(3)方法三

position:?fixed;

left:?50% - 居中盒子宽度的50%;

2.纵向居中

(1) 高度和行高设置一样

height: 100px;

line-height:100px;

3.横向和纵向都居中

display:?flex;

/*?默认的主轴是x轴row,?justify-content:?center?沿着主轴居中对齐?*/

justify-content:?center;

/*?我们需要一个侧轴居中?*/

align-items:?center;

CSS水平居中的9种方法

容器的居中显示在网页设计中是很常见的,居中显示可以获得视觉的焦点,是内容更加突出,下面就简单的说明一下如何在HTML中通过样式的控制来实现

01

最常见的一种,代码示例如下图,首先,取big一半像素大小赋给small层,通过margin: 0 auto; text-align: center来实现

02

第二种方法,代码示例如下图,将big层的display设置为table-cell,然后small层的margin-left取(500-250)/2,也就是125即可

03

第三种方法,代码示例如下图,将big层的position设置为absolute,然后small层的margin-left取(500-250)/2,也就是125即可

04

第四种方法,通过display:flex实现,代码示例如下图,big层display:flex;flex-direction:column;而small层align-self:center

05

第五种方法,在small层的宽度没有的时候,可以通过width:fit-content这个设置来完成,代码示例如下

06

第六种方法,通过display:inline-block来实现,将这个设置赋给big层即可,代码示例如下图

07

第七种方法,设置big层position:relative,相对情况下,使small层左浮动,代码示例如下

08

第八种方法,transform属性,代码示例如下

09

第九种方法,借助第三方样式,比如增加一个add节点,水平浮动向左,使small层随之浮动,代码示例如下

特别提示

每种方法都适应不同的运行环境,实际操作时需要考虑不同浏览器的解析时的兼容性

(责任编辑:IT教学网)

更多

推荐程序员考试文章