使用display:inline-block居中没有宽度的元素

   2015-11-06 0
核心提示:为要居中元素的父元素应用text-align:center,为要居中的元素设定display:inline-block.这样设定就可以得到我们想要的结果

在一个元素内居中另一个元素有时候会很困难.对于常规,静态定位的元素,可以让他向左或向右浮动,或者使用text-align属性让他在父元素内居左,居中或居右.还可以利用自动外边距(margin:0 auto;)来居中元素.这些方法的问题在于,要居中的元素必须是有宽度的.像这里用于构成菜单的html列表,他可能是根据数据库信息动态生成的,或者说将来有可能手工编辑,总之你不可能提前设定他的宽度.

在display属性的值中,inline-block具有一些特殊的混合行为.正如他的名字所暗示的,它具有块级元素的特点,也有行内元素的行为.从块级元素角度来说,可以为他设定外边距和内边距,也可以通过它简便而有效的包围其他块级元素.从行内元素角度看,他会收缩包裹自己的内容,而不是扩展填充父元素.换句话说,inline-block元素的宽度始终等于其内容宽度.这种元素还有一个特点,就是可以包围浮动元素.不过,这种元素也有一个问题,既不能给他的外边距设定auto值--而这恰恰又是在更大的容器内居中元素的最简单方法.

解决方案就是为要居中元素的父元素应用text-align:center,为要居中的元素设定display:inline-block.这样设定就可以得到我们想要的结果:没有宽度的元素也能在其父元素内居中.

 
标签: 居中 宽度
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • CSS3 Flexbox轻松实现元素的水平居中和垂直居中
    CSS3 Flexbox轻松实现元素的水平居中和垂直居中网上有很多关于Flex的教程,对于Flex的叫法也不一,有的叫Flexbox,有的叫Flex,其实这两种叫法都没有错,只是Flexbox旧一点,而Flex是刚出来不久的东西而已,为了方便说明,赶上新技术,下面我就把这种布局叫Fl
    03-08
  • CSS中ul li居中的问题
    一直以为对ul li居中对齐已经掌握了。但最近做项目时发现之前li的float:left方法显然有一个问题,就是无法居中(水平),只能使用padding-left或margin-right的方法方法来固定其居中。但这样可能在宽屏与窄屏的显示不一致。 使用这种方法主要是利用li的浮动
    03-08
  • css 垂直水平居中
    原文地址:https://www.cnblogs.com/cme-kai/p/6192544.html一、固定宽高1、父元素固定宽高+定位 + margin:auto(缺点:不支持IE7及以下的浏览器)html代码:divimg src="https://file.lexue001.com/www/202303/08/josoajx4szk.jpg" alt=""/divcss代码:div{wi
    03-08
  • 转 Div+Css控制背景图片水平垂直居中显示 背景
    在Web开发中我们经常要碰到这样的问题:在为一个页面设置背景图片之后往往希望图片能够在分辨率比较大的情况下水平垂直都居中显示。通常水平居中显示在Css中是很容易做到的,而垂直居中就需要使用一些Css的技巧:1. 首先为了能使得网站能够根据浏览器大小自适
    03-08
  • css之单行缩略..以及多行缩略 css单行居中多行
    html单行缩略方法.oneline {white-space: nowrap; //强制文本在一行内输出overflow: hidden; //隐藏溢出部分text-overflow: ellipsis; //对溢出部分加上...}html多行缩略(主要针对webkit内核).multiline {display: -webkit-box !important;overflow: hidden;t
    03-08
  • CSS设置DIV居中 css中让div居中
    style type="text/css"body{ text-align:center;}.divs{margin:0 auto;}/stylebody div class="divs"CSS设置DIV居中/div/body
    03-08
  • css元素水平垂直居中 css让元素水平垂直居中
    温习一下元素水平垂直居中的几种方法元素有具体宽度1、absolute+负边距.LV_center{  border: 1px solid red;  position: absolute;  width: 100px;  height: 100px;  top:50%;  left: 50%;  margin-top:-原高度/2 ;  margin-left: -原高度/2}
    03-08
  • CSS 实现水平垂直居中
    使用绝对定位在已经知道子元素的宽高的时候,子元素设置成绝对定位,top,left,right,bottom=0, margin = auto.wrap{position: relative;width: 500px;height: 200px;border: 2px solid #000;}.wrap.inner{position: absolute;top: 0;left: 0;right: 0;bottom:
    03-08
  • html button 居中排列
    html button 居中排列
       !DOCTYPE htmlhtmlheadmeta charset="utf-8"title/titlestyle type="text/css".foot{width: 100%; height: 30px; border: 1px solid #d2d2d2; text-align: center;}.foot ul{display: inline; margin-left: -10px;}.foot ul li{display: inline-block
    03-08
  • ASP.NET关于引用bootstrap.css导致Gridview
    HorizontalAlign="Center"  属性因不知名原因被覆盖掉。可以使用HeaderStyle  CssClass="text-center"/HeaderStyle
    03-08
点击排行