为什么两个浮动 div 之一被推到下一行?

2023-12-15

我有两个 div,我想将其放在一行中,第一个具有固定宽度,第二个没有设置宽度。如果我尝试将两者都设置为 float:left,则第二个 div 将转到下一行(如果它包含太多单词)。但如果第二个是非浮动的,它会与第一个 div 保持在同一行。为什么?

.left {
    float: left;
    width: 250px;
    height: 300px;
    background-color: red;
}

.right {
    /*if set to float:left, it might goes the next line*/
    /*float: left;*/ 
    height: 300px;
    background-color: blue;
}
<div class="left">sidebar</div>
<div class="right">I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. </div>

如果第二个 div 不浮动,蓝色 div 将保持全宽,只有文本会浮动在红色 div 周围。降低蓝色 div 的高度以更好地了解发生的情况:

.left {
    float: left;
    width: 250px;
    height: 200px;
    background-color: red;
}

.right {
    /*if set to float:left, it might goes the next line*/
    /*float: left;*/ 
    height: 300px;
    background-color: blue;
}
<div class="left">sidebar</div>
<div class="right">I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. </div>

The float CSS property places an element on the left or right side of its container, allowing text and inline elements to wrap around it. The element is removed from the normal flow of the page, though still remaining a part of the flow ref

所以浮动元素位于蓝色 div 上方,只有文本会环绕。如果进一步降低高度,文本将换行到下一行:

.left {
    float: left;
    width: 250px;
    height: 30px;
    background-color: red;
}

.right {
    /*if set to float:left, it might goes the next line*/
    /*float: left;*/ 
    height: 300px;
    background-color: blue;
}
<div class="left">sidebar</div>
<div class="right">I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. </div>

现在,如果两个元素都是浮动的,第一个元素具有固定宽度,但第二个元素的宽度将使用以下公式计算:缩小以适合算法:

如果“width”计算为“auto”,则使用的值为“shrink-to-fit”宽度。

收缩以适合宽度的计算类似于使用自动表格布局算法计算表格单元格的宽度。粗略地:计算通过在不换行的情况下格式化内容来设置首选宽度除了发生显式换行符的情况之外,还计算首选的最小宽度,例如,通过尝试所有可能的换行符。 CSS 2.1 没有定义确切的算法。第三,找到可用宽度:在本例中,这是包含块的宽度减去 'margin-left'、'border-left-width'、'padding-left'、'padding-right'、'border-right-width'、'margin-right' 的使用值以及任何宽度相关的滚动条。

Then the shrink-to-fit width is: min(max(preferred minimum width, available width), preferred width). ref

在你的情况下可用宽度是容器的宽度,首选宽度是没有任何换行符的元素的宽度,我们取其间的最小值。如果我们有很多文本,那么逻辑上它将是可用宽度

.left {
    float: left;
    width: 250px;
    height: 200px;
    background-color: red;
}

.right {
    float: left;
    height: 300px;
    background-color: blue;
}
<div class="left">sidebar</div>
<div class="right">I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. </div>

如果你减少内容,你就会减少首选宽度它将被选中,因为它将是最小值

.left {
    float: left;
    width: 250px;
    height: 200px;
    background-color: red;
}

.right {
    float: left;
    height: 300px;
    background-color: blue;
}
<div class="left">sidebar</div>
<div class="right">I am contents. I am contents. </div>

为了避免任何random行为只是固定两个元素的宽度:

.left {
    float: left;
    width: 250px;
    height: 200px;
    background-color: red;
}

.right {
    float: left;
    height: 300px;
    width:calc(100% - 250px);
    background-color: blue;
}
<div class="left">sidebar</div>
<div class="right">I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents. I am contents.  </div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么两个浮动 div 之一被推到下一行? 的相关文章

  • 我可以使用 ASP.NET WebForms 母版页在每个内容页中包含不同的 javascript/css 文件吗?

    我有几个使用相同母版页的内容页 它们并不都需要包含在相同的 javascript 和 css 文件中 tag 是否可以更改内容来自内容页面的标签 确实如此 但我建议采取一些不同的做法 我在关闭正文标签的正上方放置了一个内容占位符 然后我填充
  • 如何垂直对齐div内的图像

    如何在包含的内容中对齐图像div Example 在我的示例中 我需要将 img in the div with class frame div class frame style height 25px img src http jsfi
  • PDF 在 Safari 中隐藏 Jquery Modal

    这是与我有关的事情this https stackoverflow com questions 24052681 pdf hide jquery modal in ie问题 在 IE 中 我在对话框中使用 iframe 解决了问题 所以它工
  • ng-include 和 ng-view 不同时加载

    下面是我的应用程序的结构 很简单 页眉和页脚是非常小的文件 而主页上的 ng view 要大得多 当我进入该页面时 我注意到了这一点 首先加载两个 ng include 然后 ng view 出现 页脚被推到底部 页脚闪烁大约 0 1 秒
  • 使用“表单控件”删除输入字段的轮廓

    我有一个输入字段 如下所示 在类名中我将其作为form control
  • 如何让CSS选择以字符串开头的ID(不是Javascript)?

    如果 HTML 中有这样的元素 id product42 id product43 如何匹配所有以 product 开头的 id 我已经看到了完全使用 javascript 执行此操作的答案 但是如何仅使用 CSS 执行此操作 id pro
  • 将图像编码为base64有什么效果?

    如果我将图像 jpg 或 png 转换为 base64 那么它会更大 还是具有相同的大小 会大多少呢 是否建议在我的网站上使用 Base64 编码的图像 大约会大 37 非常粗略地说 Base64 编码的二进制数据的最终大小等于原始数据大小
  • 从字体到跨度(大小和颜色)和背面的正则表达式(VB.NET)

    我正在寻找一个正则表达式 可以将我的字体标签 仅具有大小和颜色属性 转换为具有相关内联CSS的span标签 如果有帮助的话 这将在 VB NET 中完成 我还需要一个正则表达式来实现相反的效果 下面详细说明的是我正在寻找的转换示例 font
  • CSS3变换:悬停时翻译,带有过渡[重复]

    这个问题在这里已经有答案了 这应该很简单 我的 HTML 中有一堆锚点 如下所示 a href Link 1 a a href Link 2 a a href Link 3 a a href Link 4 a a href Link 5 a
  • 在其他不可滚动的 div 上滚动时如何滚动可滚动的 div?

    我知道这个问题听起来很令人困惑 但这就是我想要做的 在下面的代码片段中 如果用户在绿色 div 上滚动 我希望黄色 div 相应地滚动 就像滚动黄色 div 一样 请注意 黄色 div 有overflow auto 但绿色的则不然 docu
  • 如何在日期选择器中设置不在当前月份的单元格的样式

    我目前正在为我的 JavaFX 应用程序制作注册表 问题是 当日期选择器中的单元格不在页面的月份上时 我想让该单元格变灰 让我们看看我当前的日期选择器 我的日期选择器 正如您所看到的 我希望下个月的日期 27 日 28 日 30 日以及 1
  • 如何防止弹性项目高度因其内容而溢出[重复]

    这个问题在这里已经有答案了 我刚刚开始学习 Flex 到目前为止我印象深刻 但是 我对包含页眉 页脚和三列的全页应用程序遇到了问题 第一列包含一个项目列表 由于我无法为其父级设置固定高度 因此每次列表增长时 它都会将页脚向下推 这是一个带有
  • 没有类的 CSS 选择器

    我正在使用选择器来选择不具有一个类的所有元素 list th not foo some rules 我怎样才能将其应用到多个班级 list th not foo list th not bar some rules 上面的 CSS 当然不会
  • 如何设置 CSS 网格的最大高度

    我有以下 CSS 网格 grid 3x4 display grid grid template columns 1fr 1fr 1fr grid template rows 1fr 1fr 1fr 1fr grid template are
  • 如何在文本区域中使用除“文本插入符号”之外的透明字体?

    我有一个简单的文本区域 我需要制作透明字母 同时允许文本插入符可见 当我应用以下规则时 我会得到隐形插入符 textarea background transparent opacity 0 当我键入不可见文本时 我需要看到文本插入符移动
  • Textmate“注释”命令对于 css 代码无法正常工作

    当我在 TextMate 中切换 CSS 源代码的注释时遇到一些问题 Using the shortcut CMD I activate the Comment Line Selection command from the source
  • 如何使用 a-href 标签链接回文件夹? [复制]

    这个问题在这里已经有答案了 好吧 我在文件夹中有一个页面 该页面称为 jobs html 该文件夹简称为 jobs 它是我的 网站 文件夹的子文件夹 在 main 文件夹的主目录中是我的 home html 文件 当我尝试做的时候 a hr
  • 动画进度元素值

    我有一个progress元素 该元素如下所示 div class container div div div
  • 如何更改 Bootstrap 3 div 列顺序

    正在做我的第一个响应式设计 在 Bootstrap 3 中可能会出现类似的情况 在 lg 上更改此设置 a b c sm 上的这个 a c b 您可以使用两个 div 一个用于第一类型的布置 另一个用于第二类型的布置 第一个仅在 lg 中显
  • 如何将送货地址复制到帐单地址

    我想知道是否可以将送货地址复制到帐单地址 当用户单击与送货地址相同的复选框时 送货地址值将被复制到账单输入字段 我完成了大部分部分 但我不确定如何将选择菜单 状态 值复制到帐单地址 我真的很感谢任何帮助 My code document r

随机推荐

  • Python Mysql,“命令不同步;您现在无法运行此命令”

    我有一个从 Python 执行的 MySQL 存储过程 包装在 Django 中 当我尝试执行第二条语句时 出现错误 命令不同步 您现在无法运行此命令 我目前无法提交交易 这只是我调用过程时的一个问题 该怎么办 cursor callpro
  • 如何在 Grails 插件中实现 Groovy 全局 AST 转换?

    我想在编译时修改一些 Grails 域类 我最初认为这是 Groovy 的全局 ASTTransformation 的工作 因为我不想注释我的域类 本地转换器需要 最好的方法是什么 我也尝试模仿DefaultGrailsDomainClas
  • 从 LinqToTwitter IAuthorizer 中提取 BearerToken

    希望对我认为简单的问题有一个简单的答案 经过身份验证后 是否可以从 IAuthorizer 中提取 BearerToken 使用 LinqToTwitter 进行授权后 我想进行自己的 API 调用 并且需要 BearerToken 来执行
  • Maven 的环境变量

    我已将一个项目从 Eclipse 移植到 Maven 并且需要设置一个环境变量以使我的项目正常工作 在 Eclipse 中 我转到 运行 gt 运行配置 然后在 环境 选项卡下 将 WSNSHELL HOME 设置为值 conf 我怎样才能
  • 在c#中裁剪图像

    我有一张图像 当我按下表单上的按钮时 我想裁剪它 我有以下代码 在按下按钮时运行 但它不会对图像执行任何操作 try Image image Image FromFile test jpg Bitmap bmp new Bitmap 200
  • 估算数据的多项回归

    我需要估算缺失的数据 然后使用生成的数据集进行多项回归 我尝试使用小鼠进行插补 然后使用 nnet 中的多项函数进行多项回归 但这给了我不可读的输出 以下是使用 mouse 包提供的 nhanes2 数据集的示例 library mice
  • 证书注册流程是怎样的?

    我正在寻找注册证书的程序 我搜索了很多但没有找到好的答案 到目前为止 我明白首先我必须生成一个密钥存储 用于创建公钥和私钥 然后私钥应保持私有 公钥与其他信息 如名称和组织 一起发送到 CA 然后CA会生成一些东西并返回给我一些包含公钥和信
  • .Net 正则表达式将 $ 与字符串结尾而不是行匹配,即使启用了多行

    我试图突出显示降价代码 但遇到了 NET 正则表达式多行选项的奇怪行为 下面的表达式 在任何在线正则表达式测试工具上都可以正常工作 但它拒绝与 net 一起使用 它似乎没有考虑 标签 只是突出显示所有内容 直到字符串末尾 无论如何 这是我的
  • Pyinstaller:AttributeError:模块“enum”没有属性“IntFlag”[重复]

    这个问题在这里已经有答案了 我需要将python代码编译为exe 我找到了一些如何做到这一点的指南 其中要求我为此安装 PyInstaller pip install upgrade pyinstaller 但我收到下一个错误 C User
  • 使用 Monotouch 处理 iOS 的 UITableViewSource 事件

    我试图捕获并处理一个事件 当 a 的元素UITableViewSource被点击 这是我的代码 public class TableViewSource UITableViewSource public event EventHandler
  • HSpec 无预期编译失败

    我正在学习 Haskell 并且编写了这个函数 safeHead a gt Maybe a safeHead Nothing safeHead x xs Just x 我现在尝试用 HSpec 测试它 import Test Hspec m
  • Eclipse 中的 XSLT 2.0 无需额外的库?

    是否可以在 Eclipse 中执行 XSLT 2 0 转换而无需额外的库 AltovaXML Saxon 答案是否定的 您需要安装 XSLT 2 0 处理器 例如 Saxon
  • 编译器和汇编器位于计算机的哪里?

    所以我知道最基本的知识 编译器将源代码转换为汇编代码 汇编器将汇编代码转换为机器代码 但我无法正确谷歌搜索 它们实际上位于哪里 我假设编译器位于硬盘驱动器上的某个位置 因为您可以从网络下载编译器并将它们用于各种编程语言 汇编器是位于硬盘上
  • python请求获取cookie

    x requests post url data data print x cookies 我使用requests库从网站获取一些cookie 但我只能获取cookie 从响应中 如何从请求中获取cookie 谢谢 或者 您可以使用requ
  • 如何动态设置 Rust 数组长度?

    我想创建这样的数组 let arr 0 length 其中长度是ausize 但我收到这个错误 E0307 The length of an array is part of its type For this reason this le
  • 由于打开相机时内存不足,phonegap Android 应用程序崩溃

    我正在使用 PhoneGap v1 3 0 开发 Android PhoneGap 应用程序我的应用程序有一个按钮 当单击该按钮时 使用phonegap api启动相机 当用户捕获图像时返回照片路径 但发生的情况是应用程序在相机返回之前崩溃
  • 使用httprequest下载文件

    是否可以使用 httprequest 从网站下载文件 我只习惯用它来获取页面的源代码 如果无法使用 httprequest 来完成此操作 是否可以使用 C 下载文件而无需使用网络浏览器 编辑 答案必须允许我选择硬盘上将文件下载到的位置 你绝
  • (PHP) 如何将 crypt() 与 CRYPT_BLOWFISH 一起使用?

    首先 我发现要使用 CRYPT BLOWFISH 我需要使用以 2a 开头的 16 字符盐 但是 那crypt 的 php net 文档说有些系统不支持CRYPT BLOWFISH 这种情况有多常见 接下来 从文档上的示例中 我看到我使用
  • 可以用相机测量到物体的距离吗?

    可以用手机摄像头测量到物体的距离吗 我的意思是 在我的应用程序中 我启动相机 将相机面对物体 比如说房子 然后按下按钮 它会计算距离并在屏幕上显示我 如果可能的话我可以在哪里找到一些教程或相关信息 我承认这个问题已经得到了充分的回答 明显需
  • 为什么两个浮动 div 之一被推到下一行?

    我有两个 div 我想将其放在一行中 第一个具有固定宽度 第二个没有设置宽度 如果我尝试将两者都设置为 float left 则第二个 div 将转到下一行 如果它包含太多单词 但如果第二个是非浮动的 它会与第一个 div 保持在同一行 为