不设置宽度的盒子模型水平居中问题。

经常会遇到这个问题:在最外层盒子模型不方便设置宽度的情况下,缩小放大窗口时,希望盒子模型也能继续水平居中。特别是在做移动端页面的时候,如果给外层盒子模型设置宽高,会多出很多代码。

例子:

图中(三个固定宽高的黄色背景盒子)被(不固定宽高的红色背景盒子box)所包裹。div标签另有作用,后面会讲到。

1 <div>
2     <ul id="box">
3         <li>1</li>
4         <li>2</li>
5         <li>3</li>
6     </ul>
7 </div>

<style>
/*公共样式*/
body,ul { padding:0; margin:0; }
body { background:#ccc; }
div { width:100%; text-align:center; margin-top:50px;}
li { list-style:none; float:left; width:100px; height:50px; background:yellow; text-align:center; line-height:50px;  }
li:nth-of-type(1),li:nth-of-type(2){ margin-right:20px; }
ul { background:red; }
</style>

/*盒子模型处理*/
#box {overflow:hidden;}

首先:三个黄色盒子设置左浮动,我们需要给box盒子设置overflow:hidden;  来清除浮动带来的影响。

这时我们会发现,box盒子被里面的黄色盒子撑起了宽高,不过box的宽默认为100%;这时候给box盒子设置margin:auto; 是无法使box盒子居中显示。

/*盒子模型处理*/#box {overflow:hidden; display:inline-block; }

我所做的处理是给box盒子设置成(inline-block;)  这样box盒子就有了子集的总宽度(内联元素包裹块级元素是不符合标准,但是并不会报错、出现问题。)

因为:box盒子已经变成了内联模块,我们只需要在最外层的div上面加个(text-align:center;)就可以实现box盒子水平居中了。

如果你有更好的方法,欢迎一起交流讨论。

时间: 2024-08-06 17:15:43

不设置宽度的盒子模型水平居中问题。的相关文章

jq获取屏幕高度和宽度(盒子模型)

$(window).width(); //浏览器可视窗口宽度 $(window).height(); //浏览器可视窗口高度 $(document).width();//body的宽度 $(document.body).width();//body的宽度 $(document).height(); //body的高度 $(document.body).height();//body的高度 $(document).scrollTop(); //滚动条卷走的高度 $(document).scroll

2.5、CSS盒子模型

盒子模型解释 元素在页面中显示成一个方块,类似一个盒子,CSS盒子模型就是使用现实中盒子来做比喻,帮助我们设置元素对应的样式.盒子模型示意图如下: 把元素叫做盒子,设置对应的样式分别为:盒子的边框(border).盒子内的内容和边框之间的间距(padding).盒子与盒子之间的间距(margin). 设置边框 设置一边的边框,比如顶部边框,可以按如下设置: border-top-color:red; /* 设置顶部边框颜色为红色 */ border-top-width:10px; /* 设置顶部

html实践——IFE task 02(盒子模型)

1. 元素分类 在CSS中,html中的标签元素大体被分为三种不同的类型:块状元素.内联元素(又叫行内元素)和内联块状元素. (1)常用的块状元素有: <div>.<p>.<h1>...<h6>.<ol>.<ul>.<dl>.<table>.<address>.<blockquote> .<form> 块级元素特点: 每个块级元素都从新的一行开始,并且其后的元素也另起一行.(

CSS中的间距设置与盒子模型

CSS间距 内补白 外补白 盒子模型 CSS间距 很多时候我们为了美观,需要对内容进行留白设置,这时候就需要设置间距了. 内补白 设置元素的内间距 padding: 检索或设置对象四边的内部边距 padding:10px; 上下及两边设置 padding:5px 10px; 由上边界开始,顺时针设置 padding:10px 20px 30px 40px 单边设置 padding-top: 检索或设置对象顶边的内部边距 padding-right: 检索或设置对象右边的内部边距 padding-

CSS基础学习十四:盒子模型补充之display属性设置

我在CSS基础学习十三:盒子模型的i博文只是阐释了CSS盒子模型,并没有过多的使用实例来演示.这篇博文 就来做一些盒子模型知识的补充.这一部分对于网页总体布局还是蛮重要的,过去大多数使用HTML中的table元素和 框架标签来进行网页的整体布局,现在我们使用最多的是DIV+CSS网页布局.所以一定要掌握好盒子模型,记住 content,border,padding和margin各自在盒子中的作用和使用方式. 先来看一个完整元素的盒子模型实例: <!DOCTYPE html PUBLIC "

HTML连载39-外边距合并现象、盒子模型以及宽度和高度

一. 在默认布局的垂直方向上,默认情况下外边距是是不会叠加的,会出现合并现象,谁的外边距较大,就听谁的:但是在水平方向就不会出现这种状况,我们举个例子 span{ display: inline-block; width:100px; height:100px; border:1px solid red; } div{ width:100px; height:100px; border:1px solid green; } /*我们让span的两个盒子,相距100px*/ .hezi1{ mar

css盒子模型之边框宽度,边框颜色与边框样式

/* width和height只是设置盒子内容区的大小,而不是盒子的整个大小, 盒子可见框的大小由内容区,内边距和边框共同决定. */ .box1 { /* 设置内容区的宽度为400px */ width: 400px; /* 设置内容区的高度为400px */ height: 400px; /* 设置内容区的背景色为green */ background-color: blueviolet; /* 设置该盒子模型的下方外边距为10px */ margin: 0px 0px 10px; } /*

web前端入门到实战:外边距合并现象、盒子模型以及宽度和高度

一. 在默认布局的垂直方向上,默认情况下外边距是是不会叠加的,会出现合并现象,谁的外边距较大,就听谁的:但是在水平方向就不会出现这种状况,我们举个例子 span{ display: inline-block; width:100px; height:100px; border:1px solid red; } div{ width:100px; height:100px; border:1px solid green; } /*我们让span的两个盒子,相距100px*/ .hezi1{ mar

android长度单位及内外间距属性(盒子模型)设置

dpi:一英寸内有多少个像素点. px :像素,屏幕上的点,不推荐使用这种单位. dp :dp=dip(device independent pixels)设备独立像素,方便在不同分辨率的手机上显示效果一致,一般设置宽度及高度用.换算公式: sp :会根据用户设置的系统font-size大小变化而变化,一般设置字体大小用. 内间距设置属性:layout_margin.layout_marginTop等. 外间距设置属性:padding.paddingTop等.