在CSS样式中有关 float 浮动嵌套 问题

html-css05

在CSS样式中有关 float 浮动嵌套 问题,第1张

浮动元素可以相互嵌套,嵌套规律与流动元素的嵌套相同。浮动的包含元素(父元素)总会自动调整自身的高度和宽度以实现对浮动元素的包含。

我们来看一个例子:

浏览器效果图:

这时会发现父元素会自动调整自身的大小来包含子元素。

如果包含元素定义了高度和宽度则他不会随子元素的大小而自动调整自身显示区域来适应子元素的显示。注意,在IE6及更低版本浏览器中包含框仍然能够自动调整自身大小来适应子元素的显示大小,不过在IE7版本中微软纠正了这个不符合标准的显示方法。如下

示例:

浏览器效果图:

默认状态下溢出不隐藏,我们可以添加 样式 overflow:hidden隐藏多余的部分或overflow: scroll多余部分显示滚动条。

如果把浮动元素嵌入到流动元素之内,则父元素不能够自适应子元素的高度,

如下示例:

浏览器效果图:

在上图中可以看到包含元素div并,没用显示。原因就是包含元素没有适应子元素的高度,而是根据自身定义的属性以独立的形式显示(父元素没有被撑开,仅收缩成一条直线显示)。所以,在应用混合嵌套式,要预测到浮动与流动混合布局时会出现的各种怪现象,并积极做好兼容处理。

解决方法:可以在包含元素内的最后一行添加一个清除元素,强制撑开包含元素,使其包含浮动元素。

示例如下:

浏览器效果图:

本文章参考书籍:HTML5+CSS3+JavaScript从入门到精通(标准版)未来科技 编著

初学HTML,遇到一个题需要将几张图放在一个边框里,并且需要横向拖动

        想着很简单,直接在div中设置width、height。并添加属性“overflow:auto”。但实际运行是发现图片始终会换行,窗口只能上下滚动

        后来找到问题的原因,是因为由于在div中直接添加图片,所以图片会适应该div的大小,从而自动换行。而要做到不换行的效果,则需要在div中嵌套一层div2,设置div2的width >div的width,由此保证:图片不会换行;在横轴方向溢出,从而出现横向滚动条。

1、<html>

<divid="root"style="width:100%height:100%">

<divclassName="outer-container">

<divclassname="inner-container">

<divclassName="container">

</div>

</div>

</div>

</div>

2、CSS:

.outer-container{

width:100%

height:100%

overflow:hidden

}

.inner-container{

width:100%

height:100%

overflow:auto

box-sizing:content-box

padding-right:17px

}

扩展资料:

使用 overflow:hidden 隐藏滚动条,但存在的问题是页面或元素失去了滚动的特性,由于只需要兼容移动浏览器(Chrome和Safari)

应用如下CSS可以隐藏滚动条:

.element::-webkit-scrollbar{display:none}

如果要兼容PC其他浏览器(IE、Firefox等),在容器外面再嵌套一层 overflow:hidden 内部内容再限制尺寸和外部嵌套层一样,就变相隐藏了。