多个盒子一行排列的方法大全 响应式网页布局

如果想把多个块级元素放到同一行上,同学们首先想到的是浮动,但是就仅仅独此一种吗,答案不是的。这里小强老师总结了5种布局方式,希望对大家有所帮助。

第一种方法: 浮动法

这种方法是最简单的,也是我们初学css必须掌握的技能,就是把li浮动起来就好了。

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        ul{width:80%;height: 200px; list-style: none;}
        li{float: left;width: 200px;height: 200px; background:pink; margin-left: 10px;}

</style>
</head>
<body>
    <ul>
        <li>左侧</li>
        <li>中间</li>
        <li>右侧</li>
    </ul>
</body>
</html>

效果如下:

第二种方法: 定位法

这种方法也可以,但是比较少用。

第三种方法: 转换为行内块法

我们知道,我们CSS显示模式,有行内显示模式(inline),有块级显示模式(block),还有行内块显示模式(inline-block)

我们知道,在网页布局中,很多地方,我们能用标准流做的,就不用浮动或者定位来做。因为 inline-block 属于标准流,因此比起浮动和定位,更为稳定。

例如淘宝网:

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        ul{width:80%;height: 200px; list-style: none; font-size: 0;
        /* 给父盒子加font-size:0可以去除默认空白间距 */}
        li{width: 200px;height: 200px; background:pink; margin-left: 10px;
         display: inline-block;/* 转换为行内块 */ font-size: 12px;/* 把字体大小改回来 */}

</style>
</head>
<body>
    <ul>
        <li>左侧</li>
        <li>中间</li>
        <li>右侧</li>
    </ul>
</body>
</html>

效果如下:

第四种方法: table-cell

我们知道 display:table 是转化为表格元素的方法  display:table-cell 转换为单元格元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        ul{width:80%;height: 200px; list-style: none;border-spacing: 10px 0;/* 因为使用table-cell之后,margin是不能用的,因此这里使用border-spacing */  border-collapse:separate;}
        li{width: 200px;height: 200px; background:pink;
          display: table-cell;}

</style>
</head>
<body>
    <ul>
        <li>左侧</li>
        <li>中间</li>
        <li>右侧</li>
    </ul>
</body>
</html>

效果如图所示:

这种方法不适合ie6、7,但是考虑到ie6.7已经很少很少了,我们可以放心的用它了。

第五种方法: CSS3 布局 display:flex

这是根据CSS3盒子模型,新增属性,有了它书写很方便,而且每个li的宽度可以自适应父盒子,以后用它做响应式网页方便了很多。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        ul{width:80%;height: 200px; list-style: none;
            display: flex;  /* 利用flex 来进行划分布局 */
            flex-flow:row;  /* 设置是横向分布还是纵向分布 如果是flex-flow:column;是三个竖直排列 */
        }
        li{height: 200px; background:pink;
            flex:1; /* 平局分成三份,每个li占一分 */
             margin-left: 10px;
          }

</style>
</head>
<body>
    <ul>
        <li>左侧</li>
        <li>中间</li>
        <li>右侧</li>
    </ul>
</body>
</html>

效果如图:

注意: 因为css3肯定有浏览器兼容性问题,大家不要忘了加前缀。在这里,小强老师想让大家代码看的更清除,因此没有加前缀。
例如:display:-webkit-flex;  -webikt-flex:1;

怎么样,原来盒子排列也有这么多方法,特别是后面三种方法,会运用越来越多。因为,以后的网站朝着html5和css3大步前进。

小强零零壹和大家一起分享。

时间: 2025-01-21 21:28:46

多个盒子一行排列的方法大全 响应式网页布局的相关文章

数组中哪些方法是响应式的

可变参数: function sum (...num){ console.log(num); } 下面这些方法是响应式的: 注意:在Console通过索引值修改数组中的元素,不是响应式的   this.letters[0] = 'bbbb'; Vue.set()也是响应式的 下面这个例子的功能是:单击会使文字变红 1 <!DOCTYPE html> 2 <html> 3 4 <head> 5 <meta charset="utf-8" />

Html5添加自动排列图片的jquery响应式图片排列插件教程

一.引入JS文件 <script src="path/to/jquery.min.js" > <script src="path/to/jquery.row-grid.min.js" > 二.Html结构 <div class="container"> <div class="item"> <img src="path/to/image" width=&

浏览器缩放,会导致布局打乱,解决方法?/一缩小网页布局就打乱了怎么办?

原因通常就是你的元素浮动了,最好设置个最小宽度min-width:具体宽度值 px;,如果你需要自适应,用media查询 有些地方不写死的话可以用min-width和max-width来限制一下.不然你父容器用百分比设置宽度,而子元素用固定的px设置宽度,当你父容器缩小到一定程度的时候肯定容不下固定宽度的子元素.如果想百分比和固定宽度混用的话最好设置一下min-width和max-width--------------------- 原文:https://blog.csdn.net/qq_356

总结清除浮动方法大全(7种)

1)添加额外标签 这是在学校老师就告诉我们的 一种方法,通过在浮动元素末尾添加一个空的标签例如 <div style="clear:both"></div>,其他标签br等亦可. 再如: <div class="warp" id="float1"> <h2>1)添加额外标签</h2> <div class="main left">.main{float:l

jQuery操作Table tr td方法大全

虽然现在DIV+CSS进行页的布局大行其道,但是很多地方使用table还是有很多优势,用table展示数据是比较方便的,下面汇总了jQuery操作Table tr td常用的方法,熟记这些操作技巧,下次再使用的到时候,会让你如鱼得水,提高开发效率. 1.鼠标移动行变色  $("#table1 tr").hover(function(){ $(this).children("td").addClass("hover") },function(){

.net数据访问层组件Data Abstract 免费下载及使用方法大全

原文来自龙博方案网http://www.fanganwang.com/product/1321.com/转载请注明出处 Data Abstract是最好的多层次框架,它提供端到端的解决方案,同时也可以很轻松地建立起可扩展的数据库方案以满足如今的分布式系统要求. 概况特性 ·         为.NET,Mono,32/64位的Windows以及Linux建立可扩展的.跨平台的多层次数据库解决方案. ·         使用一个通用的代码库处理不同的数据库设计或数据库系统. ·         使

[OC][转]UITableView属性及方法大全

Tip: UITableView属性及方法大全  (摘录地址) p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Times; min-height: 14.0px } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px "Songti SC" } p.p3 { margin: 0.0px 0.

Ping使用方法大全

Ping是典型的网络工具.Ping能够辨别网络功能的某些状态.这些网络功能的状态是日常网络故障诊断的基础.特别是Ping能够识别连接的二进制状态(也就是是否连通).但是,这只是能够告知你的网络运行状况的众多行为分析中一个最简单的例子. 假设网络是一个黑匣子,对此你事先一无所知.通过适当地刺激网络和分析网络的反应,正确地应用网络行为分析模型确定这个黑匣子的内部状态.这就使网络工程师和用户不必专门访问网络的组成设备(也就是接口.交换机和路由器)就可以了解一个网络通道. 向网络发送数据包.用网络的正常

System.getProperty()方法大全

System.out.println("java版本号:" + System.getProperty("java.version")); // java版本号System.out.println("Java提供商名称:" + System.getProperty("java.vendor")); // Java提供商名称System.out.println("Java提供商网站:" + System.get