為什么有些內聯(行內)元素可以設置寬高?

為什么有些內聯(行內)元素如img、input可以設置寬高?

在說明之前我們先來了解一些定義。

塊級元素和內聯元素:

①塊級元素總是獨占一行,表現為另起一行開始,而且其后的元素也必須另起一行顯示。

寬度(width)、高度(height)、內邊距(padding)和外邊距(margin)都可控制。

塊級元素主要有:

address , blockquote , center , dir , div , dl , fieldset , form , h1 , h2 , h3 , h4 , h5 , h6 , hr , isindex , menu , noframes , noscript , ol , p , pre , table , ul , li

②內聯元素不會以新行開始,和相鄰的內聯元素在同一行。

一般情況下,寬度(width)、高度(height)、內邊距的top/bottom(padding-top/padding-bottom)和外邊距的top/bottom(margin-top/margin-bottom)都不可改變,只能改變左右邊距。

內聯元素主要有:

a , abbr , acronym , b , bdo , big , br , cite , code , dfn , em , font , i , img , input , kbd , label , q , s , samp , select , small , span , strike , strong , sub , sup ,textarea , tt , u , var

③可變元素,根據上下文關系確定該元素是塊元素還是內聯元素:

applet , button , del , iframe , ins , map , object , script

一般情況下,行內元素只能包含數據和其他行內元素,而塊級元素可以包含行內元素和其他塊級元素。

?

置換元素(替換元素)和非置換元素(不可替換元素):

①置換元素

一個

內容
不受 CSS視覺格式化模型控制,CSS渲染模型不考慮對其內容的渲染,且元素本身一般擁有固有尺寸(寬度,高度,寬高比)的元素,被稱之為置換元素。

瀏覽器會根據元素的標簽和屬性,來決定置換元素的具體顯示內容。

它們所具有的特征為:在不使用css修飾時,元素的標簽和屬性也會影響元素的顯示。

例如,瀏覽器會根據<img>標簽的src屬性的值來讀取圖片信息并顯示出來,而如果查看(x)html代碼,則看不到圖片的實際內容;<input>標簽的type屬性決定是顯示輸入框,還是單選按鈕等。

html(5)中的置換元素有 <img>、<input>、<textarea>、<select>、<object>、<

iframe> 和 <canvas> 等

置換元素在其顯示中生成了框,這就是有些內聯元素能夠設置寬高的原因。

②非置換元素

html 的大多數元素是非置換元素,除置換元素之外,所有的元素都是非置換元素。非置換元素內容直接表現給瀏覽器。

例如:<label>label中的內容</label>?標簽<label>是一個非置換元素,文字“label中的內容”將全被顯示。

?

塊級元素/行內元素的寬高和邊距設置問題:

塊級元素可以設置寬度(width)、高度(height)、內邊距(padding)和外邊距(margin)。

行內置換元素可以設置寬度(width)、高度(height)、內邊距(padding)和外邊距(margin)。

行內非置換元素可以設置左右內邊距(padding

-right
/
padding-left
)和左右外邊距(
margin-right
/
margin-left
)。

實例:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<title>padding</title>
<style> .test { width: 200px; height: 50px; padding: 10px; border: 1px solid #000; box-sizing: border-box;
}
</style>
</head>
<body>
<div class="test">塊級元素</div>
<input class="test" type="button" value="行內置換元素"/>
<br />
<label class="test">行內非置換元素</label>
<br /> 文本 </body>
</html>

結果:

一些邊距規則

①所有元素(除

table-row-group | table-header-group | table-footer-group | table-column-group | table-row
外)都可以設置橫向內邊距(padding
-right
/
padding-left
);所有元素(除 table-row-group | table-header-group | table-footer-group | table-column-group | table-row?和 行內非置換元素?之外)都可以設置縱向內邊距(padding-top/padding-bottom)。

②所有元素(除?

非table | inline-table | table-caption
的表格類元素之外)都可以設置橫向外邊距(margin-right/margin-left);所有元素(除?
非table | inline-table | table-caption
的表格類元素 和 行內非置換元素?之外)都可以設置縱向外邊距(margin-top/margin-bottom)。

③當我們為行內非置換元素設置縱向內邊距(padding-top/padding-bottom)或縱向外邊距(margin-top/margin-bottom)時,如果不將之轉化為行內塊(inline-block)或者塊級(block)元素,那么它的縱向邊距屬性不會影響布局。上、下邊距會在當前元素的行框基礎上向頂部和底部外延,但是這些外延不會拓展新的布局大小。

④如果元素的position不是static | relative或者float不是none或者該元素是根元素,當display: inline | inline-block | run-in | table-*系時,display的計算值為block。也就是說,絕對定位或者浮動的內聯元素,實際表現為塊級元素,可以設置寬高和邊距。

本文轉載于:猿2048?https://www.mk2048.com/blog/blog.php?id=0jbchaa&title=為什么有些內聯(行內)元素可以設置寬高?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/370572.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/370572.shtml
英文地址,請注明出處:http://en.pswp.cn/news/370572.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mongo數據庫和mysql數據庫的區別_Mongodb與mysql數據庫的區別

MySQLMongoDB說明mysqldmongod服務器守護進程mysqlmongo客戶端工具mysqldumpmongodump邏輯備份工具mysqlmongorestore邏輯恢復工具db.repairDatabase()修復數據庫mysqldumpmongoexport數據導出工具sourcemongoimport數據導入工具grant * privileges on *.* to …Db.addUser()Db…

在Eclipse中高效運行HTTP / REST集成測試

最近&#xff0c;我有機會使用由我親愛的Holger Staudacher編寫的OSGi-JAX-RS-Connector庫。 通過連接器&#xff0c;您可以通過將Path注釋的類型注冊為OSGi服務來輕松發布資源-實際上&#xff0c;它工作得很好。 對于我來說&#xff0c;使用普通的JUnit測試編寫驅動的服務類測…

Eclipse安裝TestNG插件

Eclipse安裝TestNG插件 TestNG是什么? TestNG按照其文檔的定義是&#xff1a; TestNG是一個測試框架&#xff0c;其靈感來自JUnit和NUnit的&#xff0c;但引入了一些新的功能&#xff0c;使其功能更強大&#xff0c;使用更方便。 TestNG是一個開源自動化測試框架;TestNG表示下…

basicdatasourcefactory mysql_Java基礎-DBCP連接池(BasicDataSource類)詳解

Java基礎-DBCP連接池(BasicDataSource類)詳解作者&#xff1a;尹正杰版權聲明&#xff1a;原創作品&#xff0c;謝絕轉載&#xff01;否則將追究法律責任。實際開發中“獲得連接”或“釋放資源”是非常消耗系統資源的兩個過程&#xff0c;為了解決此類性能問題&#xff0c;通常…

生物神經網絡衍生出的算法

一個生物神經網絡的基本結構&#xff1a; 生物神經網絡由大量神經元組成&#xff0c;這些神經元之間通過突觸相互連接。神經元可以接收來自其他神經元的信號&#xff0c;并根據信號的強度和類型來調整自己的輸出信號。這種神經元之間的相互連接和信號傳遞形成了生物神經網絡的基…

echart實例數據 本地加載_JVM 類加載概述

來源&#xff1a;SegmentFault 思否社區作者&#xff1a;又壞又迷人JVM簡介JVM是Java Virtual Machine(Java虛擬機)的縮寫&#xff0c;JVM是一種用于計算設備的規范&#xff0c;它是一個虛構出來的計算機&#xff0c;是通過在實際的計算機上仿真模擬各種計算機功能來實現的。Ja…

JPA / Hibernate:基于版本的樂觀并發控制

本文是Hibernate和JPA中基于版本的樂觀并發控制的簡介。 這個概念已經很老了&#xff0c;上面已經寫了很多東西&#xff0c;但是無論如何我都看到了它被重新發明&#xff0c;誤解和濫用。 我在編寫它只是為了傳播知識&#xff0c;并希望引起人們對并發控制和鎖定的興趣。 用例…

高可用集群搭建

高可用集群搭建  創建hadoop賬戶 創建hadoop賬戶&#xff08;#注意&#xff0c;接下來的操作均在hadoop賬戶下運行&#xff09; # useradd hadoop # passwd hadoopsu - hadoopmkdir soft disk1 disk2mkdir -p disk{1,2}/dfs/{dn,nn}mkdir -p disk{1,2}/nodemgr/local 將本地目…

scrt如何切換成英文版_英文版SecureCRT顯示亂碼解決

英文版SecureCRT顯示亂碼解決系統環境&#xff1a;CentOS&#xff15;.&#xff16;以前Linux都是默認安裝在英文環境下&#xff0c;用英文版的SecureCRT查看系統內容輸出的也都是英文的&#xff0c;不會出現亂碼問題。今天同事在服務器安裝時默認選擇了簡體中文&#xff0c;這…

java try catch_Java捕獲異常

大家好&#xff0c;歡迎來到樂字節小樂的Java技術分享園地在Java中&#xff0c;凡是可能拋出異常的語句&#xff0c;都可以用try ... catch捕獲。把可能發生異常的語句放在try { ... }中&#xff0c;然后使用catch捕獲對應的Exception及其子類。多catch語句可以使用多個catch語…

haproxy文件操作

import os #導入os模塊def search(): #定義查找函數 with open(haproxy.txt,r) as f: #只讀方式打開文件 value input(請輸入您…

多語言持久性:帶有MongoDB和Derby的EclipseLink

從現在開始&#xff0c;多語種持久性一直是新聞。 從2011年底開始&#xff0c;在著名的Fowler帖子的推動下&#xff0c;我看到了更多更好的主意。 最新的一個是公司內部的學生項目&#xff0c;我們在其中使用Scala作為后端數據&#xff0c;將數據持久存儲到MongoDB&#xff0c;…

web前端開發最佳實踐--(筆記之JavaScript最佳實踐)

如何避免全局變量污染&#xff1f; 避免定義全局變量或全局函數用一個變量進行封裝&#xff0c;并返回外部需要訪問的接口如何寫出高維護的js代碼 配置數據和代碼邏輯分離 如&#xff1a; 改成&#xff1a; ---用js模板mustachehandlebarsjsMVC的數據模式 model&#xff1a;數據…

yum mysql5.7位置_CentOS yum 安裝 Mysql5.7

1 Steps for a Fresh Installation of MySQL# wget https://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm# yum localinstall mysql57-community-release-el6-9.noarch.rpm以上步驟其實是把 MySQL Yum repository 添加到了系統的 repository list 里去了。ll…

HTML/CSS基礎知識(四)

WEB標準和W3C的理解與認識 Web標準是一系列標準的集合。 網頁主要由三部分組成&#xff1a;結構&#xff08;Structure&#xff09;、表現&#xff08;Presentation&#xff09;和行為&#xff08;Behavior&#xff09;。 對應的標準也分三方面&#xff1a;結構化標準語言主要包…

python做一個系統代碼_python初學者,用python3實現基本的學生管理系統代碼實例...

這篇文章分享了管理系統&#xff0c;python學生管理系統的使用&#xff0c;這篇文章非常詳細地介紹了通過示例代碼實現的學生管理系統&#xff0c;該系統對每個人的研究或工作都有一定的參考學習價值。 這個是用python實現的基本的增刪改查的學生管理系統吧&#xff0c;其中主要…

Python入門筆記

Python變量和數據類型 數據類型 print語句 注釋 Python的注釋以 # 開頭&#xff0c;后面的文字直到行尾都算注釋 # 這一行全部都是注釋... print hello # 這也是注釋 什么是變量 定義字符串 字符串可以用或者""括起來表示。 如果字符串本身包含怎么辦&#xff1f;比如…

1058. 選擇題(20)

原題: https://www.patest.cn/contests/pat-b-practise/1058 思路: 本題主要就是怎么讀取數據的問題, 一定要注意scanf函數匹配到 空格或者回車會結束當前變量的賦值, 并且會丟棄這個空格或回車. 關于如何判斷一項答題是否正確, 可以采用循環一個一個判斷, 也可拼成 字符串用st…

使用Spring和Hibernate進行集成測試有多酷

我有罪&#xff0c;直到現在才寫集成測試&#xff08;至少針對數據庫相關事務&#xff09;。 因此&#xff0c;為了消除內感&#xff0c;我閱讀了如何在周末以最少的努力實現這一目標。 提供了一個小示例&#xff0c;描述了如何使用Spring和Hibernate輕松實現這一目標。 通過集…

假設mysql數據表t1有字段_使用ROMA Connect集成數據

概述ROMA Connect支持接入多種類型的數據源&#xff0c;并通過數據集成任務實現源端到目標端的數據集成轉換。ROMA Connect支持相同結構數據之間進行集成轉換&#xff0c;也支持異構數據之間進行集成轉換。本章節通過完成一個SQL Server到MySQL的數據集成配置樣例&#xff0c;幫…