多列布局之等分布局

在实际网页布局中,我们可能会需要设置等分布局。

<div class="parent">
     <div class="column"><p>1</p></div>
     <div class="column"><p>2</p></div>
     <div class="column"><p>3</p></div>
     <div class="column"><p>4</p></div>
 </div>   

可以采用以下办法:

方案1:float

 .parent{     margin-left:-20px;           //给父元素增加宽度}
 .column{
     float:left;
     width:25%;
     padding-left:20px;
     box-sizing:border-box;
}

缺点:1.如果等分分数不一样的话,需要重新设置。

2.ie67对百分比浮点数直接四舍五入。

方案2:table

改造HTML:

<div class="parent-fix">
     <div class="parent">
         <div class="column"><p>1</p></div>
         <div class="column"><p>2</p></div>
         <div class="column"><p>3</p></div>
         <div class="column"><p>4</p></div>
     </div>
 </div> 

css:

.parent-fix{
        margin-left:-20px;          //补充宽度
    }
    .parent{
        display:table;
        width:100%;
        table-layout:fixed;
    }
    .column{
        display:table-cell;
        padding-left:20px;
    }

方案3:flex

   .parent{
        display:flex;
    }
    .column{
        flex:1;                //分margin后的剩余空间
    }
    .column+.column{           //除了第一个column元素外的后几个column元素
        margin-left:20px;
    }

缺点:兼容性问题

总结:选择器特性及兼容性

选择器相关知识:http://www.w3school.com.cn/cssref/css_selectors.asp

附加等高布局:

方案1:将left、right设为table元素;

方案2:flex的align-items的默认值是stretch

方案3:float(伪等高)  兼容性较好

加上.left,.right{padding-bottom:9999px;margin-bottom:-9999px;}及.parent{overflow:hidden}

时间: 2024-12-28 15:35:46

多列布局之等分布局的相关文章

解决 等分 布局

等分布局 每一列的间距一样, (1)用浮动比较复杂.float <div class="parent"> <div class="column"> <p class='content'>1</p> </div> <div class="column"> <p class='content'>2</p> </div> <div clas

多列居中等高布局

<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>CSS</title> <style type="text/css"> *{ margin:0; padding:0; font-size:12px;

实现CSS等分布局的4种方式

× 目录 [1]float [2]inline-block [3]table[4]flex 前面的话 等分布局是指子元素平均分配父元素宽度的布局方式,本文将介绍实现等分布局的4种方式 思路一: float 缺点:结构和样式存在耦合性,IE7-浏览器下对宽度百分比取值存在四舍五入的误差 [1]float + padding + background-clip 使用padding来实现子元素之间的间距,使用background-clip使子元素padding部分不显示背景 <style> body

CSS布局(二) 常见布局

本文是根据网上资料总结出来的文章 CSS 布局方式 一列布局 多用于显示标题展示等: <div class="main"></div> .main{ width: 200px; height: 100px; background-color: green; margin: 0 auto; } 两列布局 两列布局,最常见的就是使用float来实现.float浮动布局的缺点是浮动后会造成文本环绕等效果,以及需要及时清除浮动. 注意: 1.如何父级元素没有设置高度,则

Android基础_2 Activity线性布局和表格布局

在activity的布局中,线性布局和表格布局是最简单的,这次分别从线性布局,表格布局以及线性布局和表格混合布局做了实验,实验中只需要编写 相应的xml的代码,java代码不需要更改,因为我们这里只是练习android的界面设计.参考的资料为mars老师的教程. 线性布局: 线性布局就是将各种控件按照行或者列依次进行排列. 其中本实验用到的各控件的属性解释如下: android:layout_weight属性是指不同的控件在activity中占有体积大小的比例. android:paddingL

【CSS】 布局之圣杯布局

在看众多大神的css布局指南时,经常看到一个布局:圣杯布局(也有称为双飞翼布局的).今天我们也来剖析一下. 其实,对于众多css布局,我们只要明确理解了3种技术,那么基本上大多数布局都难不倒我们了: 浮动 float 绝对定位和相对定位 negative margin 负边距 relative position 浮动 浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止. 由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样.(w3c) 上面是

duilib各种布局的作用,相对布局与绝对布局的的意义与使用方法

转载请说明原出处,谢谢~~ 我使用duilib快3个月了.总体感觉duilib的使用还是较为简单的,仅仅是刚入门时可能有些摸不清头脑.今天写一篇关于duilib的入门日志,大致说一下duilib中的各个布局的作用,以及非常关键的相对布局与绝对布局的意义与使用方法. 希望能够帮到使用duilib的新手朋友们.duilib高手就能够直接省略这篇文章了! 我刚使用duilib的时候非常依赖duilib自带的设计器,用他能够拖拉控件.可视化的做出自己想要的界面.可是用一段时间就会发现原带的设计器有非常多

圣杯布局与双飞翼布局

圣杯布局和双飞翼布局的目的都是:左右两栏固定宽度,中间部分自适应: 圣杯布局 圣杯布局HTML: <div class="wrap"> <div class="main"> 我是主要 </div> <div class="left"> 我是左边 </div> <div class="right"> 我是右边 </div> </div>

Bootstrap页面布局4 - 嵌套布局

嵌套布局: 在一行中,有三列,每一列都有对应的BS栅格系统中的格子,以下例中因为 .row中的div对应的class分别是span4,span4,span4,所以其每一列对应的格子数是 4,4,4 现在有一个需求,要在第三列中另外再布局出2列,且这2列宽度相同那么操作如下:看彩色部分 <div class='row'> <div class='span4'> <h2>栏目一</h2> <p>段落1</p> </div> &