解决父元素不包围浮动元素的方法

介绍


1.css样式和页面以及呈现效果

2.需求:想要让图片标题位于图片右侧,样式如下图

此时发现呈现的效果是:section 也不再包围浮动元素了,它只包围非浮动的 元素。

以下提供三种方法解决这个问题

方法一:为父元素添加 overflow:hidden


overflow:hidden 作用:当子元素过大,父元素依旧保持原本大小,并对子元素进行剪裁;强迫父元素包含浮动的子元素

修改样式
最终效果

方法二:同时浮动父元素


首先给父元素添加浮动属性,不管其子元素是否浮动只要父元素浮动它会紧紧包裹子元素


修改样式
最终效果

问题:发现父元素浮动之后不再默认占满浏览器整个宽度,所以我们还要为其设置宽度

Tip:  浮动非图片元素时,必须给它设定宽度,否则后果难以预料。图片无所谓,因为它 本身有默认的宽度。


增加宽度
最终效果


footer元素由于section元素浮动其紧紧挨着footer元素  强制其呆在下方做法:clear:left



方法三:添加非浮动的清除元素


1.给父元素的添加非浮动元素

2.清除该元素

【解释】父元素一定会包裹着非浮动元素,清除会让子元素位于浮动元素下方,因此包含元素一定会包含这个子元 素——以及前面的浮动元素。

以下介绍两种 添加非浮动元素的方法

1.通过额外增加一个元素

1.给父元素的添加非浮动元素


2.清除该元素

2.用 CSS 来添加这个清除元素的方法

它只添加了一个清除的包含句 ‘.’  点作为非浮动元素(必须得有内容,而句点是最小的内容。规则中的其他声明是 为了确保这个伪元素没有高度,而且在页面上不可见。

使用 clear:both 意味着 section 中新增的子元素会清除左、右浮动元素(位于左、右浮 动元素下方)。这里当然可以只用 left,但 both 也适用于将来图片 float:right 的情况。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,680评论 1 92
  • 前言 在MyLayout的6大布局中,每种布局都有不同的应用场景。且每种布局的子视图的约束机制不一样:线性布局...
    欧阳大哥2013阅读 12,390评论 4 29
  • 浮动和清除是用来组织页面布局的又一柄利剑,这柄剑的剑刃就是float和clear属性。浮动和清除是用来组织页面布局...
    神豪VS勇士赢阅读 1,358评论 0 0
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,981评论 1 45
  • 学会使用CSS选择器熟记CSS样式和外观属性熟练掌握CSS各种选择器熟练掌握CSS各种选择器熟练掌握CSS三种显示...
    七彩小鹿阅读 11,424评论 2 66