Html 浏览器如何确定在块元素/内联元素中放置换行符的位置?

Html 浏览器如何确定在块元素/内联元素中放置换行符的位置?,html,css,web,Html,Css,Web,一个具体的例子: 我有一个菜单:一个列表,它显示子列表:悬停在它的元素上。对于这样一个女儿名单,我没有设定任何具体的宽度或高度。我不想为子菜单列表设置固定的宽度,但只要子菜单项可以放在一行中,就不希望出现换行符,但出于某些原因,浏览器确实会在每个单词后换行符 最重要的是,我想知道,放换行符的算法是什么。试图阅读CSS2.1规范,但至今未找到答案。(说明:父列表位于相对位置,子列表位于绝对位置;无浮动;父列表显示在内联块中) 在li单元上设置空格应该可以实现您想要的功能 li{white-spac

一个具体的例子:

我有一个菜单:一个列表,它显示子列表:悬停在它的元素上。对于这样一个女儿名单,我没有设定任何具体的宽度或高度。我不想为子菜单列表设置固定的宽度,但只要子菜单项可以放在一行中,就不希望出现换行符,但出于某些原因,浏览器确实会在每个单词后换行符

最重要的是,我想知道,放换行符的算法是什么。试图阅读CSS2.1规范,但至今未找到答案。(说明:父列表位于相对位置,子列表位于绝对位置;无浮动;父列表显示在内联块中)


在li单元上设置空格应该可以实现您想要的功能

li{white-space:nowrap;}

至于它是如何决定的,它将其设置为尽可能小的宽度。在您的情况下,页眉是最宽的单个元素,因此它在那里断开,如果有一个单词比页眉长,它将转到该单词的宽度。

设置li单位上的空白应该可以满足您的需要

li{white-space:nowrap;}

至于它是如何决定的,它将其设置为尽可能小的宽度。在您的例子中,页眉是最宽的单个元素,因此它会在那里断开,如果有一个单词比页眉长,它会转到该单词的宽度。

谢谢,瑞克!似乎,我没有得到算法,它决定了宽度作为一个整体。1) 块元素的宽度是否与其父元素分配的宽度相同?(例如,如果在
中放置顶级块元素,它将占据整个页面的宽度)?2) 如果顶级块元素显式设置了width=300px,并且具有position:relative,并且其子块元素的位置是绝对的,那么子块元素不应该像它所发生的那样使用尽可能多的宽度,而不是尽可能少的宽度吗?感谢您的回答,希望我的问题可以理解。我不这么认为,绝对定位就像浮动一样,将元素从文档流中移除,因此从技术上讲,它不再有父元素。好吧,既然您明确地说了这一点,它似乎是合乎逻辑的。再次感谢,谢谢,瑞克!似乎,我没有得到算法,它决定了宽度作为一个整体。1) 块元素的宽度是否与其父元素分配的宽度相同?(例如,如果在
中放置顶级块元素,它将占据整个页面的宽度)?2) 如果顶级块元素显式设置了width=300px,并且具有position:relative,并且其子块元素的位置是绝对的,那么子块元素不应该像它所发生的那样使用尽可能多的宽度,而不是尽可能少的宽度吗?感谢您的回答,希望我的问题可以理解。我不这么认为,绝对定位就像浮动一样,将元素从文档流中移除,因此从技术上讲,它不再有父元素。好吧,既然您明确地说了这一点,它似乎是合乎逻辑的。再次感谢。