html - 如何让两列 float 左 div 布局自动换行?

标签 html css css-float

我的 HTML 看起来像这样:

<body>
  <div class="nav"><ul>...</ul></div>
  <div class="view">this text won't wrap if I resize browser</div>
</body>

我的 CSS 看起来像这样:

.nav {
    width:200px;
    float:left;
    font-weight:bold;
    margin-right:46px;
}

.nav a {
    font-weight:normal;
}

.nav ul {
    padding:0;
    margin:0;
    list-style-type:none;
    text-align:right;
}

.nav ul li {
    margin-bottom:7px;
}

.view {
    float:left;
}

如果我将浏览器的大小调整得更窄,那么它根本不会对 View div 中的文本进行自动换行。它只会取消 float View div 并将其放在导航 div 下方。

如何使 View div 中的文本自动换行而不是取消 float 到导航 div 下?

最佳答案

您希望您的 .nav div 为 200 像素宽,我假设您希望 .nav div 和 .view 之间有 46 像素> div,至少这是我从 .nav div 上的 margin-right:46px 中了解到的。您不需要 float .view div。事实上,您不能这样做,因为如果它是 float 的,将它放在 .nav div 旁边的唯一方法是设置宽度(否则它将默认为其父级的 100%)。但是你不能设置宽度,因为你希望它随着浏览器的大小而增长和缩小。

所以 float 不是一个选项,但也不是必需的。 .nav div 是 float 的,因此 .view div 将出现在 .nav div 下方(因为 float 的 div 从流量)。要使 .view div 出现在 .nav div 旁边,您只需将 margin-left 设置为 246 像素(200px 宽度 .nav + 46px 边距)。

.nav {
    width:200px;
    float:left;
}

.view {
    margin-left:246px;
}

关于html - 如何让两列 float 左 div 布局自动换行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8016274/

相关文章:

javascript - 从多行javascript和jquery中删除一行

jquery - 带有 jQ​​uery 动画的 Chrome/Safari 中的 CSS3 问题

html - float 问题 - 当宽度大于页面宽度时 Div 下降

html - 为什么 block 元素在 float 后面并且内联绕过?

html - div中的全 Angular 输入

html - 输入后面出现的div

javascript - 如何使用 JavaScript 将选定的选项获取到 select dropodown 标记中?

html - 响应图像调整大小问题

javascript - ng-disabled 也不启用提交按钮

html - 图像无法使用 Sprite 表正确渲染