img標籤設定display:block屬性時寬度無法設定為100%的解決辦法

來源:互聯網
上載者:User
本篇文章所說的內容是img標籤設定display:block屬性時寬度無法設定為100%的解決辦法,方法很詳細,有一定的參考價值,有需要的朋友可以參考一下,希望可以對你有所協助。

現象

如下代碼,img標籤設定了display:block,尺寸寬度無法設定為100%

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>img標籤設定display:block,寬度無法100%</title></head><body>    <p>        <img src="https://www.baidu.com/img/bd_logo1.png?where=super" style="display: block;">    </p></body></html>

原因

替換元素和非替換元素

元素是文檔結構的基礎,在CSS中,每個元素產生了一個包含了元素內容的框(box,也翻譯為“盒子”)。但是不同的元素顯示的方式會有所不同,例如p和span不同,而strong和p也不一樣。在文件類型定義(DTD)中對不同的元素規定了不同的類型,這也是DTD對文檔之所以重要的原因之一。而根據元素本身的特點可以分為替換元素(replaced element)和非替換元素,非替換元素,在W3C中沒有給出明確的定義,但我們可以由替換元素對應著非替換元素,所以可以理解為除了替換元素,其它的就是非替換元素

替換元素:瀏覽器根據元素的標籤和屬性,來決定元素的具體顯示內容。替換元素是其內容不受CSS視覺格式化模型控制的元素,例如img標籤,嵌入的文檔(iframe之類)或者applet,這些叫做替換元素。比如img元素通過src屬性的值來讀取圖片資訊並顯示出來,而如果查看(x)html代碼,卻看不到圖片的實際內容,而且img元素的內容通常會被src屬性指定的映像替換掉;例如input元素的type屬性決定是顯示輸入框,還是選項按鈕等。(x)html中的img , input , textarea , select , object都是替換元素。這些元素沒有實際的內容,即是個空元素

非替換元素:(X)HTML 的大多數元素是非替換元素,他們將內容直接告訴瀏覽器,將其顯示出來

img標籤為替換元素,替換元素的特性之一就是尺寸由內部元素決定,且無論其 display 屬性值是 inline 還是 block。這個特性很有意思,對於非替換元素,如果其 display 屬性值為 block,則會具有流動性,寬度由外部尺寸決定,但是替換元素的寬度卻不受 display 水平影響,因此,display 水平是無法讓尺寸 100%自適應父容器的

解決

解決辦法就是,通過設定<img>的width尺寸 100%

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>img標籤設定display:block,寬度無法100%</title></head><body>    <p>        <img src="https://www.baidu.com/img/bd_logo1.png?where=super" style="display: block;width: 100%;">    </p></body></html>
相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.