首頁  >  文章  >  web前端  >  img標籤設定display:block屬性時寬度無法設定為100%的解決方法

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

不言
不言原創
2018-08-15 13:55:484514瀏覽

這篇文章所說的內容是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%自適應父容器的

解決

解決方法就是,透過設定的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>

#相關推薦:

使用{display:block}之後仍然無法設定寬度? _html/css_WEB-ITnose

display:table,display:block用法差異

css hover: display:block;偽類在下拉式選單中的應用程式需要注意z-index的使用_html/css_WEB-ITnose

#

以上是img標籤設定display:block屬性時寬度無法設定為100%的解決方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn