《精彩绝伦的CSS》——布局(三)遏制浮动

三、遏制浮动

若一个容器中的元素全部采用浮动,则该容器如果没有自适应包裹内容其高度就会为0。

如下:

div#container{

border: 2px dashed gray;

background-color: #9AC;

}

div.colum{

float: left;

width:28%;

padding: 0 1%;

margin: 0 1%;

}

容器container内包含三个浮动块colum,效果如下:


图片顶部的那条虚线就是container的边框,可看出这个container的高度只有0,而内部浮动栏都到外边了。

这时只要做个小改变,就能解决了。

1、通过溢出遏制浮动:overflow:auto;

给容器添加溢出:

div#container{

border: 2px dashed gray;

background-color: #9AC;

overflow:auto;

}

效果如下:


可以看出容易已经“自适应包裹”浮动的各栏了。

安静需要注意的是:overflow属性的auto值以为着浏览器可以在div#container上添加滚动条。这在实际操作中国不一定会出现,但还是要留意一下。


2、通过浮动遏制浮动

另外一个遏制浮动的方法就是浮动容器本身。

这种方法之所以会起作用是因为浮动本身就被定义为用来包裹任何浮动的后代元素的,他们也被定义为自适应内容的宽度,不多也不少

但是,在这种情况下,这可能会变得很危险:浏览器自行决定div#container到底多宽多窄,而这个结果是不可预知的,因此我们只要给定div#container一个明确的宽度(width:100%)就好。

div#container{

border: 2px dashed gray;

background-color: #9AC;

float:left;

widthj:100%;

}

div.colum{float: left; width:28%; padding: 0 1%; margin: 0 1%;}

最后结果与上面方法相同。

安静需要注意的是,这种方法可能会使正常的文档流内容跟随到浮动元素后面的风险。为了规避这个风险,我们可能需要清除任何跟随在浮动元素后的元素:

div#footer{clear:left;}

或者利用相邻兄弟选择器:div#container + *{clear:left}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.省略简写属性值的关键词时会发生什么? 当省略了部分简写属性值的时候,缺失的部分就会使用该属性的默认值。 2.如何使用颜色控制边框外观? 我们知道在CSS中边框的使用是非常重要的,我们这里就介绍一下CSS的边框属性( border)如何使用。边框是围绕在内容和内边距之间的一条或多条线。内容的内边距和外间距之间的间隙是留给边框的,CSS可以用边框属性来定义它的样 式、颜色和宽度等。 在Html中人们用表格来制作文本周围的边框,但通过CSS来设置边框将有更出色的效果,而且可以应用于所有的元素。 边框分为上边框、右边框、下边框、左边框。 每个边框有3个方面:样式(或外观)、颜色、以及其宽度(粗细),下面我们分别重点解释这三项。 边框样式(border-style) 设置元素所有边框的样式,或者单独地为各边设置边框样式。它有10个属性值,分别是: none: 无样式; hidden: 同样是无样式,主要用于解决和表格的边框冲突; dotted: 点划线; dashed: 虚线; solid: 实线; double: 双线,两条线加上中间的空白等于border-width的取值; groove: 槽状; ridge: 脊状,和groove相反; inset: 凹陷; outset:凸出,和inset相反; 其中groove、ridge、inset、outset有些像3D效果,它的效果受border-color的影响。 border-style作用在四个方向时所用的方法和前面曾讲过的padding属性的书写方法相同,如果它书写四个参数值,将按照上-右-下-左 的顺序定义边框。如果只设置一个,将用于四个边框统一设置。如果设置两个值,第一个作用于上下,第二个则作用与左右。如果设置三个值,第一个作用于上边框,第二个作用于左右边框,第三个作用于下边框。 边框颜色(border-color) 这个属性用来定义所有边框颜色,或者为四个边分别设置颜色。它可以取颜色的值或被设置为透明(transparent)。示例: .colorful {border-style:solid;border-color:gray;} border-color属性值的个数与其所对应方向的边框效果的设置方法和border-style的设置方法相同,可参照border-style属性学习理解。 需要注意的是在border-color前最好先设置border-style,否则border-color可能会不显示。 边框宽度(border-width) border-width可定义四个边框的宽度,即边框的粗细程度,它有四个可选属性值: medium (是缺省值,通常大约是2像素) thin(比medium细) thick(比medium粗) 用长度单位定值。可以用绝对长度单位(cm, mm, in, pt, pc)或者相对长度单位 (em, ex, px)。 border-width属性值设置的个数与所对应方向产生的效果和border-style、border-color的设置方法相同,可参照border-style、border-color属性学习理解。 边框(border) border是一个综合性写法,它设置的是四个边框的宽度、样式和颜色,不能对某一个边框单独设置。它的格式: border: border-width border-style border-color; 示例: .bk01 {border:3px solid #FF0000;} 单边边框的设置方法 除了以上介绍的几种属性,还有几种属性可以单独定义各方向的边框。下面对它们进行分类介绍。 设定上边框属性: border-top,它的设置格式和border相同,依次设置宽度、样式、颜色: ......

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值