CSS 布局_如何实现容器中每一行的子容器数量随着浏览器宽度的变化而变化?

实现一个浮动布局,红色容器中每一行的蓝色容器数量随着浏览器宽度的变化而变化,就如下图:

  1. 要实现这样一个布局,我们首先需要如下的 HTML:

    <div id="float-container">
             <div class="float-element"></div>
             <div class="float-element"></div>
             <div class="float-element"></div>
             <div class="float-element"></div>
             <div class="float-element"></div>
             <div class="float-element"></div>
             <div class="float-element"></div>
             <div class="float-element"></div>
             <div class="float-element"></div>
    </div>
  2. 然后开始写 CSS 吧,就像这样:

    #float-container {
        background-color: red;
    }
    .float-element {
        float: left;
        width: 50px;
        height: 30px;
        background-color: blue;
        margin: 10px;
    }

    使每个小容器向左浮动,再设定一个边距,一个根据浏览器宽度自适应变化位置的浮动布局就搞定收工了?当然不会,效果会像这样:

  3. 咦,说好的红色背景大容器呢,怎么躲起来啦?检查一番,原来是忘了给大容器 div 设定宽高度了,那就设定一下宽高度。既然要求了大容器自适应,那么我们就分别设定为 100% 吧:

    #float-container {
        background-color: red;
        height: 100%;
        width: 100%;
    }
    .float-element {
        float: left;
        width: 50px;
        height: 30px;
        background-color: blue;
        margin: 10px;
    }

    好啦,刷新一下。大容器咋还是没出来?

  4. 现在让我们分析一下吧,为何看不见大容器?因为 div 如果没有包裹元素的话,百分比宽高度是不会产生效果的。

    那么为什么大容器明明包裹着九个 div,百分比宽高度却没有产生效果呢?因为小容器都设定为左浮动,已经脱离文档流,大容器并没有包围小容器。接下来我们想要大容器自适应,又不想使小容器失去浮动的特性,能够随着宽度变化自动调整每一行的个数,应该怎么办?是时候请出我们的 BFC 大神啦,对,我已经连续三篇实例博文提到 BFC 原理了,因为这个原理就是这么有用啊(有关 BFC 的介绍请参考该实例系列的第二篇文章)。现在我们在大容器加上 overflow: hidden; 就可以自动清理其包含的任何浮动元素,接下来看看最终的 DEMO,试着调整一下宽度,是不是已经实现了想要的效果

  5. From:http://doc.okbase.net/honoka/archive/202170.html
时间: 2024-10-20 23:52:36

CSS 布局_如何实现容器中每一行的子容器数量随着浏览器宽度的变化而变化?的相关文章

CSS 布局实例系列(四)如何实现容器中每一行的子容器数量随着浏览器宽度的变化而变化?

Hello,小朋友们,还记得我是谁吗?对了,我就是~超威~好啦,言归正传,今天的布局实例是: 实现一个浮动布局,红色容器中每一行的蓝色容器数量随着浏览器宽度的变化而变化,就如下图: 肯定有人心里犯嘀咕了,哈~这么简单,不就是全部左浮动嘛,这也好意思拿出来讲?别急啊,其实里面的坑还是挺多的,且待我一个个填上. 要实现这样一个布局,我们首先需要如下的 HTML: <div id="float-container"> <div class="float-eleme

css布局补充学习及项目中的学习

一.css布局补充知识点 (一)块级元素 块级元素生成块级盒,块级盒分为块盒和块容器盒,常见块盒为<p><h1><div>, 表格和可替换元素不是块盒. (二)可替换元素 浏览器可根据其标签的元素与属性判断显示内容的.如<img>.<input>.<textarea>.<select>.<object>. (三)position:fixed Position:fixed 的包含块是视口. (四)Display的

对象无法注册到Spring容器中,手动从spring容器中拿到我们需要的对象

当前对象没有注册到spring容器中,此时无法new object()  的方式创建对象,否则所有@Autowired 注入的对象都为null; 处理方式: 手动创建一个类@Component注册到Spring容器  并实现ApplicationContextAware 接口,实现对象方法,完成获取spring容器的通道,再通过通道获取我们所需要的对象,此对象里面关联注入的其他对象都正常,可以正常使用了 /** * 用于手动获取spring无法注册的对象 */ @Component public

IE9父容器overflow:auto时,子容器状态更改导致滚动条下出现额外空间的问题探讨

IE的每次跟新都会有一些奇葩的bug,我们默默承受了. 这个问题在项目中出现困扰了我近一个星期,这里记录一下.看下面实例 <style> .panel{ width: 200px; overflow: auto; background-color: #f00; } .inner{ width: 250px; background-color: #ff0; } </style> <div class="panel"> <div class=&qu

css 布局(转载)

一劳永逸的搞定 flex 布局 寻根溯源话布局 一切都始于这样一个问题:怎样通过 CSS 简单而优雅的实现水平.垂直同时居中.记得刚开始学习 CSS 的时候,看到 float 属性不由得感觉眼前一亮,顺理成章的联想到 Word 文档排版中用到的的左对齐.右对齐和居中对齐,然而很快就失望的发现 CSS 中并不存在 float: center 的写法,那么 text-align: center.verticle-align: center 是否可行呢?答案也是否定的.这两个属性只能用于行内元素,对于

CSS布局(五) 圣杯布局

本文翻译修改自https://alistapart.com/article/holygrail 圣杯布局 在页面上的显示效果就是左右两边是个固定的宽度,中间的容器自适应:即根据页面大小的变化而变化. 如何实现 战略很简单.容器div的侧面有自适应中心和固定宽度的衬垫.然后诀窍是让左列与左侧填充对齐,右侧列与右侧填充对齐,留下中心列以填充容器的自适应宽度. 1.基本结构 <div id='header'></div> <div id='container'> <di

css012 css布局简介

css012  css布局简介 一.    网页布局的类型 网页布局的类型 1.固定宽度 2.流式 3.相应式web设计 二.    如何进行css布局 1.强大的<div>标签 网页的html代码数量应该尽可能减到最少,尤其是div标签的嵌套,当使用div标签有助于网页布局设计时,就很好用.但是并不是div嵌套的越多越好. 2.html5的分区元素 <div>  用于分割区域,块级元素 <span> 行内分区元素 <article> 给网页或者网页的分区提

在 Docker 容器中运行应用程序

案例说明 运行 3 个容器,实现对网站的监控. 三个容器的说明: 容器 web: 创建自 nginx 映像,使用 80 端口,运行于后台,实现 web 服务. 容器 mailer: 该容器中运行一个 mailer 程序,运行于后台,当接收到事件后会向管理员发送邮件. 容器 agent: 该容器运行一个 watcher 程序,以交互模式运行,用于不断地监测 web 服务的运行情况,一旦出现故障会立即向 mailer 容器发送消息. 创建容器 创建并运行 web 容器 $ docker run --

spring容器中bean的作用范围

spring容器中bean的作用范围范围五类,bean的作用范围不同对bean的生命周期和创建方式也会产生一定的影响. singleton  以单例形式存在,容器中仅有一个bean实例. prototype  每次从容器中调用bean时,容器都创建一个新的实例,每次调用都相当于new一个新的对象. request 每次http请求都会创建一个新的bean. 此作用域仅适用于webApplicationContext环境. session 同一个session共享同一个bean,不同的sessio