0 0

float和height出现在2个相邻div时出现的奇怪问题5

<html>
	<head>
		<title>2个div之间的间隔</title>
		<style type="text/css">
			body {background-color: #ddd;}
      #leftsider{
        border:red 1px solid;
        float:left;
        width:100px;
        height:500px;
      }
      #rightsider{
        border:green 5px solid;
       [b] height:100px;[/b]
      }
		</style>
	</head>
	<body>
		<div id="leftsider">这里是左边</div>
		<div id="rightsider">这里是右边</div>
	</body>
</html>


预览效果发现2个DIV中间出现一个空白缝隙,当删除#rightsider中的height:100px;后得到想要的效果,不删除的情况为什么会有空白出现呢?
CSS 
2009年10月09日 21:34

3个答案 按时间排序 按投票排序

0 0

和height:100px没什么关系,主要是
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
的影响,然后再通过position来安排位置

2009年10月10日 16:56
0 0

IE6的著名3px BUG(断头台bug):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>52css.com</title>
<style type="text/css">
<!--
#left {
  float:left;
  width:200px;
  height:100px;
  background:#f00;
  }
#right {
  width:200px;
  height:100px;
  background:#fc0;
  }
-->
</style>
</head>
<body>
<div id="left">oyksoft.com</div>
<div id="right">oyksoft.com</div>
</body>
</html>

两个层,一个浮动,一个不浮动,把浮动的一个放在不浮动层中,你会发现两个之间有点间隙,宽度为3px。这个问题是最让人头疼的问题了。

解决方法:

1、所有的层都浮动 把右边那个层也设置成浮动层就可以消除这可恶的3px间隔
2、给左边的层,应用margin-right:-3px;,同样可解决IE 3px bug.

2009年10月10日 15:22
0 0

这是著名的IE6 3像素偏移bug。《精通Css》上介绍的比较详细。

如果想看英文的,推荐这篇:
http://www.positioniseverything.net/explorer/threepxtest.html

中文看看这个:
http://www.w3cstandard.com/read.php?5

2009年10月10日 11:27

相关推荐

    DIV+CSS相对IE6、IE7和IE8的兼容问题

    其次,`margin`加倍问题主要出现在IE6中,当元素设置了`float`属性时,其margin会被错误地加倍。解决办法是在该元素上添加`display:inline`,这可以使IE6正确解析margin值。 浮动元素产生的双倍距离问题也是IE6的一...

    CSS+DIV网页布局技巧(精髓)

    在IE中,两个相邻的块级元素可能会出现外边距折叠现象,即两个元素之间的外边距会被合并成一个较大的值。为了避免这种情况,可以在两个元素之间插入一个空的 `div`,并为其设置 `clear: both;`。 ```css .clear { ...

    DIV+CSS浏览器兼容

    当多个浮动元素相邻时,可能会出现间距不一致的问题。为了解决这个问题,可以使用“clearfix”方法,通过在父容器上添加一个特殊的class,使其自动清除内部浮动。 ```css /* Clear Fix */ .clearfix:after { ...

    IE6特有bug兼容性问题整理

    在不同浏览器中,对于`float`元素和相邻非`float`元素的处理方式存在差异。具体表现为,在IE6中,当一个元素设置了`float`属性后,其后的相邻非`float`元素也会受到浮动的影响,表现为似乎被“拉入”浮动区域。而在...

    div+css网页标准版式布局大全.rar

    13. **边距重叠问题**:当相邻元素的外边距相遇时,可能会发生重叠,了解并解决这个问题能优化布局效果。 通过学习和实践这50个布局示例,开发者不仅可以掌握基本的DIV+CSS布局技巧,还能深入了解和运用更先进的...

    divcss布局实例

    **解析**:`clear`属性可以防止元素与其前面的浮动元素相邻,通常用于清除由`float`造成的布局问题。 ##### 5. 多栏布局 **描述**:通过浮动实现多栏布局。 **代码片段**: ```css #wrap { width: 100%; height: ...

    div+css布局中常用方法汇总.pdf

    }`,可以让textarea的滚动条只在内容过多时出现,高度自动调整以适应内容。 2. **鼠标指针样式**:使用`cursor: pointer;`可以使元素的鼠标指针变为手形,通常用于可点击的元素。 3. **断词控制**:`word-wrap: ...

    css部分bug解决

    **问题描述**:当一个元素设置了`float`属性后,其相邻的兄弟元素如果设置了`margin`可能会出现外边距合并现象。 **解决方案**: - **display: inline**:可以在浮动元素上添加`display: inline;`来避免此问题。 ...

    CSS浏览器兼容问题整理(IE6.0、IE7.0_与_FireFox)

    标题和描述均指向了一个核心议题——CSS在不同浏览器(尤其是IE6.0、IE7.0与Firefox)之间的兼容性问题。这个问题对于Web开发者来说至关重要,因为不同的浏览器可能对CSS的解析和渲染方式存在差异,导致网页在不同...

    两个div左边的固定宽度右边的自动填充的css

    在CSS布局中,有时我们需要让一个元素(通常是侧边栏或菜单)具有固定的宽度,而相邻元素(通常是内容区域)则自动扩展以填满剩余空间。这种布局可以通过多种方法实现,其中一种简单的方式就是使用浮动(float)属性...

    DIVCSS特效,网页js特效

    2. **定位与浮动**:CSS的`position`属性(如`static`、`relative`、`absolute`、`fixed`)用于控制元素的位置,`float`属性(如`left`、`right`)则用于元素的浮动,这些特性在创建复杂的多列布局时非常有用。...

    DIV+CSS 高手也得看的15个CSS常识

    ### DIV+CSS 高手也得看的15个CSS常识 #### 1. 不要使用过小的图片做背景平铺 在网页设计中,背景平铺是一种常见的技术手段,用于填充较大的区域以增强视觉效果。然而,如果选择尺寸过小的图片作为背景平铺,则会...

    使用CSS的overflow属性防止float撑开div的方法

    这就是为什么当两个或多个浮动元素在同一个父容器内时,它们会彼此相邻排列。 然而,由于浮动元素不再占据其父容器的垂直空间,如果父容器中没有其他非浮动内容,该父容器的高度将会变为0,导致父容器无法包裹住...

    (十年积累)div+css 完全兼容ie6 ie7 IE8 IE9 和firefox方法.docx

    当多个浮动元素相邻时,可能会影响非浮动元素的位置。解决方法是在最后添加一个清除浮动的元素: ```css .clear { clear: both; } ``` 或使用CSS3的`clearfix`伪类。 5. **列表元素的初始化**: - Firefox...

    浏览器兼容性问题处理

    当一个 `div` 的内容超过其设定的高度时,在 FF 中可能会出现与相邻 `div` 重叠的情况,而在 IE 中则会自动调整以适应内容的高度。为了避免这种现象,一种推荐的做法是不显式指定高度,让 `div` 自动调整大小。另一...

    IE6 两个div有间隙的问题(IE 3px bug)

    标题中的“IE6 两个div有间隙的问题(IE 3px bug)”指的是在使用Internet Explorer 6浏览器时,两个并排放置的div元素之间会出现一个大约3像素的空隙,这在其他浏览器如IE7中通常是不存在的。这个问题是由于IE6对盒...

    vue中实现拖动调整左右两侧div的宽度的示例代码

    这个功能允许用户通过拖动一个中间的分割条来动态调整相邻div的宽度。这对于创建可响应的布局和提供用户友好的界面非常有帮助。 首先,我们需要了解在HTML结构中,我们需要三个部分来实现这个效果:左侧div、调整...

    最全的CSS浏览器兼容问题

    **问题描述**:在IE6浏览器中,当一个元素设置了`float`属性后,其相邻的兄弟元素如果也设置了`float`,那么它们之间的`margin`会出现重叠现象。 **解决方法**: - 使用条件注释为IE6单独添加CSS样式,如`&lt;#div id=...

Global site tag (gtag.js) - Google Analytics