首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IE7浮点右问题

问IE7浮点右问题
EN

Stack Overflow用户
提问于 2009-11-30 22:01:03
回答 3查看 40.4K关注 0票数 49

Html=>

代码语言:javascript
复制
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"     
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head>
</head>
<body>
  <div style='border: 1px solid red; width: 100px;'>
    <a href="#">foo</a>
    <a href="#"style="border-color: blue; float: right;">bar</a>                
  </div>
something
</body>
</html>

我遇到了IE7的问题(不需要IE6支持)

在IE7上呈现的html看起来像this=>

我需要它看起来像这样(工作在chrome/ie8在目前)=>

我应该改变什么?:)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-11-30 22:02:39

您需要将两个元素都浮动并清除它。

代码语言:javascript
复制
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"     
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head>
</head>
<body>
  <div style="border: 1px solid red; width: 100px;">
    <a href="#" style="border-color: blue; float: right;">bar</a>    
    <a href="#" style="float:left;">foo</a>            
    <div style="clear:both;"></div>
  </div>
something
</body>
</html>

或者简单地将浮动元素放在正常元素前面,如下所示:

代码语言:javascript
复制
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"     
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head>
</head>
<body>
  <div style="border: 1px solid red; width: 100px;">
    <a href="#" style="border-color: blue; float: right;">bar</a>    
    <a href="#">foo</a>            
  </div>
something
</body>
</html>

简要说明:

请原谅我的英文和绘图,但这里简要介绍了浮动和清除如何在跨浏览器中工作:

元素可以向左或向右浮动。当你让元素浮动时,元素不会将“正常”的内容向下推。明白为什么-

浮动和清除:

​

图例:橙色/向右浮动、蓝色/向左浮动、灰色线条/清除分隔线、红色矩形/边界

在本例中,一行文本有两个元素-一个向左浮动,另一个向右浮动。当浮动时,它不会将内容向下推,也就是占用空间。因此,如果您不在灰色线条上使用clear:both,下面的内容将在两个浮动元素之间向上堆叠,因此可能不是您想要的内容。

当您在浮点数下面使用clear:both时,浮点数下面的内容将被推送到最高高度的浮点数元素。这在图表的第二部分和第三部分中显示。

仅浮动:

​

图例:橙色/向右浮动,蓝色/正常内容,灰色线条/与下一条直线一起分割的线条,红色矩形/边界

蓝色的普通内容默认情况下已经是text-align: left;。因此,它是面向左侧的。你需要浮动在普通内容的前面,因为你告诉浏览器从这一行开始浮动。

你应该尝试不同的条件来看看它的效果:把浮动放在前面,后面,浮动左边,右边,清除两个,清除右边和左边。

票数 97
EN

Stack Overflow用户

发布于 2009-11-30 22:13:32

总是帮助所有的IE-Float-Combos:给每个float-element一个display: inline;

票数 1
EN

Stack Overflow用户

发布于 2009-11-30 22:20:35

尝试clear after修复:

代码语言:javascript
复制
div:after {
    clear: both;
    content: ".";
    display: block;
    height: 0;
    visibility: hidden;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1820007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档