1. 程式人生 > >p元素包含div元素的問題

p元素包含div元素的問題

    我們都知道div可以包含塊狀元素和行內元素,包括p元素,但是p元素包含div會怎麼樣呢,下面就來試驗一下吧:     首先:
    <style type="text/css">
        p {
            border: 2px dotted red;
        }
        div {
            border: 2px solid green;
        }
    </style>

    <p>
        <div>
            asdfghjkl
        </div>
    </p>
    結果是這樣的:

    然後,我們仔細分析到底是什麼促成了如此詭異的佈局     在p元素和div元素之間寫下一個字串,選中p元素的第一個子元素
    <style type="text/css">
        p:nth-child(1){
            border: 2px dotted red;
        }
        div {
            border: 2px solid green;
        }
    </style>

    <p>qwertyuiop
        <div>
            asdfghjkl
        </div>
    </p>


    原來div上面的那一條斑點邊框不是一條,而是兩條,只不過原來沒內容重疊在一起了

    那麼第三個元素就是div和p之間的內容了?再在div下面新增一行字串,用css選中第三個元素:
    <style type="text/css">
        p:nth-child(3){
            border: 2px dotted red;
        }
        div {
            border: 2px solid green;
        }
    </style>

    <p>qwertyuiop
        <div>
            asdfghjkl
        </div>
        zxcvbnm
    </p>

   
    啊啊啊,可以看出新增的字串既不屬於div又不屬於p ,兩個元素之間的字串完全被拋棄了
    由此,我們看出,p元素被div分割成了三塊塊狀元素,並且第三塊是有問題的。在p元素中新增div元素是無法控制格式的,所以不建議在p元素內新增div元素是有原因的,除非你特別牛逼,能算出來到底該怎麼佈置

注:以上全部顯示結果是在Firefox瀏覽器中實現的,由於博主太懶沒有在其他瀏覽器中開啟(主要是畏懼上傳圖片的流程哈哈)