了解浮动以及如何以及何时浮动 CSS3 中的元素?

Understanding float and how and when to float an element in CSS3?

我无法理解这个 属性。 首先,我告诉你我对此有什么了解。 对于此线程,我专注于 <p> 元素和 id="amazing"

现在我给它一个宽度

#amazing{
   width: 200px
}

结果是:

由于段落是块元素,所以没有元素会在它旁边向上移动,因为所有块元素前后都有换行符。

现在我浮动它:

#amazing{
       width: 200px;
       float: right
 }

我对这部分的理解:

(1) 首先,浏览器像往常一样流动页面上的元素,从文件顶部开始向底部移动
(2) 当浏览器遇到浮动元素时,将其一直放置到右侧,同时将段落从流中移除,就像它在页面上浮动一样

如果我错了请纠正我...
接下来,

使用 CSS 下拉菜单浮动 属性

考虑从网络上截取的这个片段:
包含列表项的无序列表 像这样

             <ul id="menu">
                <li>
                    <a href="">Home</a>
                </li>
                <li>
                    <a href="">About Us</a>

                    <ul id="menu-about-us">
                        <li>
                            <a href="">The Team</a>
                        </li>
                        <li>
                            <a href="">History</a>
                        </li>
                        <li>
                            <a href="">Vision</a>
                        </li>
                    </ul>
                </li>
                <li>
                    <a href="">Products</a>
                    <ul>
                        <li>
                            <a href="">Cozy Couch</a>
                        </li>
                        <li>
                            <a href="">Great Table</a>
                        </li>
                        <li>
                            <a href="">Small Chair</a>
                        </li>
                        <li>
                            <a href="">Shiny Shelf</a>
                        </li>
                        <li>
                            <a href="">Invisible Nothing</a>
                        </li>
                    </ul>
                </li>
                <li>
                    <a href="">Conatct</a>
                    <ul>
                        <li>
                            <a href="">Online</a>
                        </li>
                        <li>
                            <a href="">Right Here</a>
                        </li>
                        <li>
                            <a href="">Somewhere Else</a>
                        </li>
                    </ul>
                </li>
            </ul>

现在如果我这样做,

ul {
    font-family: Arial, Verdana;
    font-size: 14px;
    margin: 0;
    padding: 0;
    /*list-style: none;*/
}

ul li {
    display: block;      
    position: relative;
    float: left;
}
li ul {
    display: none;
}

对于 ul li,display: block 不会使它们表现为块元素,但我将它们视为内联元素如图所示。 float 属性这里有什么好用的?

ul li {
        display: block;      
        position: relative;
        float: left;
}

我好像太迷茫了。请帮帮我... 如果有人在 float 将如何与 block 和 inline 一起运行的上下文中清除这个概念会更好元素。

这取决于场景以及您希望实现 Shirgill 的内容。 我已经为你准备了 JS 的快速比较 Fiddle --> http://jsfiddle.net/Lt7cftyc/

你是对的。设置 display:inline-block 时列表的行为;与浮动属性列表非常相似:

ul li {
display:inline-block;
}

行为类似于:

ul li {
display:block;
float:left;
}

但也有一些不同。例如,您需要始终清除浮动元素以防止意外行为:

clear:both;

在我下面的示例中,您可以看到内嵌菜单和浮动菜单的不同场景。你可以玩玩它,看看当你向内联元素和浮动元素添加边距或填充时它会如何表现。你会感到惊讶。

ul.inline li {
 display:inline-block;
}

ul {
    font-size:14px;
    font-family: Arial;
    border: 1px solid black;
    background: lightblue;
    margin: 20px 0;
}

ul li {
    padding: 0 5px;
}

ul.floated2 {
    height: 20px;    
}

ul.floated li, ul.floated2 li {
    display:block;
    float:left;
}

.clr {
clear:both;
}
<p>This is example of inline list</p>
<ul class="inline">
    <li>menu 1</li>
    <li>menu 2</li>
    <li>menu3</li>
</ul>
<br />
<p>This is example of floated list. Note that there is no backgroud - first difference!</p>
<ul class="floated">
    <li>menu floated 1</li>
    <li>menu floated 2</li>
    <li>menu floated3</li>
</ul>

<br />
<p>This is example of floated list. The background is visible, but after I set height:20px;. </p>
<ul class="floated2">
    <li>menu floatedSecond Version 1</li>
    <li>menu floated 2</li>
    <li>menu floated3</li>
</ul>