不定宽元素的居中方法

  对于定宽元素,一般使用margin: 0 auto能很好实现,

不好实现的办法:

  1、text-align , line-height 比较常见,但是是针对文本即单排文字,对于容器,盒子,实现不了。

  2、position:absolute、50%和margin:-px   思路是容器脱离文档,靠负margin拖动自身的一半,达到居中的目的。如果父元素宽度确定方案可行,如果自身宽度不确定无法确定margin值。不大合适,

  3、position:fixed、0和margin:auto 相对视窗定位,常用于模态框实现。但是使用margin,则要要求元素自身有宽高才能达到自身居中的效果;会脱离文档流

  4、position:absolute、0和margin:auto  同样要求父级元素具有宽度和高度。不符合

容易实现的办法:

  方案一:父元素display:tabel,子元素 vertical-align:middle;display:table-cell

  方案二:子元素定位属性脱离文档流,absolute,父元素非static定位, 子元素通过使用translate属性负的百分比,将自身拉回去一半达到居中。

    position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);  方案三:vw vh和translate 分别是相对视口的高度(viewport width),视口的高度(viewport height)的1% 50vw表示当前视口宽度的50%。因此可以设置fix定位,然后偏移属性用相对单位来写,tranlate位移一半居中  方案四::before和display:inline-block。原理,居中元素添加一个伪类,并且使其内容为空,高度为100%,表现为inline-block,这样可以设置vertical-align保持垂直居中,对于居中元素自身,采用inline-block与增加      的元素保持一个水平基线,通过vertical-align同时相对middle对齐。由于元素自身展示为行内,可以使用text-align使其水平居中。  方案五:flex,兼容性完美的布局方式,使用方式简单。父元素display:flex; 子元素,align-items:center垂直居中,justify-content:center;主轴和侧轴都完成居中,flex很强大。备注,内容参考唐霜大神的博客https://www.tangshuang.net/3197.html

原文地址:https://www.cnblogs.com/blackcoding/p/9740900.html

时间: 2024-11-05 13:34:16

不定宽元素的居中方法的相关文章

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

来源:http://www.imooc.com/code/6363 在实际工作中我们会遇到需要为“不定宽度的块状元素”设置居中,比如网页上的分页导航,因为分页的数量是不确定的,所以我们不能通过设置宽度来限制它的弹性.(不定宽块状元素:块状元素的宽度width不固定.) 不定宽度的块状元素有三种方法居中(这三种方法目前使用的都很多): 加入 table 标签 设置 display: inline 方法:与第一种类似,显示类型设为 行内元素,进行不定宽元素的属性设置 设置 position:rela

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

在实际工作中我们会遇到需要为“不定宽度的块状元素”设置居中,比如网页上的分页导航,因为分页的数量是不确定的,所以我们不能通过设置宽度来限制它的弹性.(不定宽块状元素:块状元素的宽度width不固定.) 不定宽度的块状元素有三种方法居中(这三种方法目前使用的都很多): 加入 table 标签 设置 display: inline 方法:与第一种类似,显示类型设为 行内元素,进行不定宽元素的属性设置 设置 position:relative 和 left:50%:利用 相对定位 的方式,将元素向左偏

不定宽块状元素居中方法

在实际的编写代码过程中,我们会遇到要为"不定宽块状元素"设置居中,比如网页上的分页导航,因为分页的数量不确定,所以我们不能通过设置宽度来限制它的弹性. 不定宽的块状元素有三种方法设置居中: 一.设置table标签: 利用table标签的自适应长度(table其长度根据其文本内容的长度决定),因此可以看做是"定宽度块元素",然后利用顶宽度块状元素居中的margin方法,使其水平居中. 例1:HTML代码 1 <!DOCTYPE html PUBLIC "

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

来源:http://www.imooc.com/code/6365 除了前两节讲到的插入table标签,以及改变元素的display类型,可以使不定宽块状元素水平居中之外,本节介绍第3种实现这种效果的方法,设置浮动和相对定位来实现. 方法三:通过给父元素设置float,然后给父元素设置 position:relative 和 left:50%,子元素设置 position:relative 和 left: -50% 来实现水平居中. 我们可以这样理解:假想ul层的父层(即下面例子中的div层)中

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

除了前两节讲到的插入table标签,以及改变元素的display类型,可以使不定宽块状元素水平居中之外,本节介绍第3种实现这种效果的方法,设置浮动和相对定位来实现. 方法三:通过给父元素设置float,然后给父元素设置 position:relative 和 left:50%,子元素设置 position:relative 和 left: -50% 来实现水平居中. 我们可以这样理解:假想ul层的父层(即下面例子中的div层)中间有条平分线将ul层的父层(div层)平均分为两份,ul层的css代

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

除了上一节讲到的插入table标签,可以使不定宽块状元素水平居中之外,本节介绍第2种实现这种效果的方法,改变元素的display类型为行内元素,利用其属性直接设置. 第二种方法:改变块级元素的 display 为 inline 类型(设置为 行内元素 显示),然后使用 text-align:center 来实现居中效果.如下例子: html代码: <body> <div class="container"> <ul> <li><a

三种不定宽块元素水平居中的方法

一般来说对定宽的块元素进行水平居中是比较简单的,我们只需要设置块元素的宽度然后设置margin:0 auto即可.但是,对于无法设置固定宽度的块元素,这招就不起作用了. 下面我介绍一下常用的三种对不定宽块元素设置水平居中的方法 第一种: 使用float+relative实现水平居中 CSS代码: .wrap{ float: left; position: relative; left:50%; border: 1px solid red; } .content{ position: relati

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

原文:http://www.imooc.com/code/6363 在实际工作中我们会遇到需要为“不定宽度的块状元素”设置居中,比如网页上的分页导航,因为分页的数量是不确定的,所以我们不能通过设置宽度来限制它的弹性. 不定宽度的块状元素有三种方法居中(这三种方法目前使用的都比多): 加入 table 标签 设置 display;inline 方法 设置 position:relative 和 left:50%; 第一种方法: 第一步:为需要设置的居中的元素外面加入一个 table 标签 ( 包括

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

在实际工作中我们会遇到需要为“不定宽度的块状元素”设置居中,比如网页上的分页导航,因为分页的数量是不确定的,所以我们不能通过设置宽度来限制它的弹性. 不定宽度的块状元素有三种方法居中(这三种方法目前使用的都比多): 加入 table 标签 设置 display;inline 方法 设置 position:relative 和 left:50%; 这一小节我们来讲一下第一种方法: 第一步:为需要设置的居中的元素外面加入一个 table 标签 ( 包括 <tbody>.<tr>.<