html分塊時邊距的設置,html – 文本節點后第一個塊的邊距(垂直空間)?

我不確定你是否會認為這是對你的問題的完整答案,因為我知道你正在使用< td>在您的示例中,< td>之間存在一個差異.和< dd>或者< li>元素是< td>的事實.在不破壞< table>的情況下,元素不能與其周圍元素相抵消具體行為.但至少我可以回答你的第三個問題的一部分:

If it’s true that it’s not possible to define a CSS rule which creates the same format for both kinds of HTML…

事實并非如此,你總是可以渲染一個浮動:前面的偽元素,寬度為100%;設置,并設置兄弟的一半邊緣< p>它上面的元素.

dd {

border: 1px dashed lightblue; /* this line is for demonstration purposes only */

}

dd:before {

float: left;

content: "";

width: 100%;

margin: 0.5em;

}

An introductory sentence as a text node.

A further sentence as a paragraph.

An introductory sentence as a paragraph.

A further sentence as a paragraph.

這引入了一個空的“虛擬”段落,它只影響< dd>的直接文本節點.作為< p>元素只會執行their automatic margin collapsing magic而不是向下移動.我認為這證明至少可以定義一個CSS規則,它為這兩種HTML創建相同的格式.

這是如何工作的,或者至少我理解這是如何工作的. W3C在CSS規范中有一個例子,它告訴我們問題中的文本節點必須是anonymous block box,因為它是一個文本節點,在一個帶有display:block的框內呈現;設置,< dd>,它有一個帶display:block的兄弟;設置,< p>.

通過添加偽元素 – 在此匿名塊框內呈現(它必須是,因為否則它將永遠不會像內聯元素一樣,或者它可能呈現為兩個anonymous inline boxes,沒有包含塊框) – 但無論如何,我們最終得到兩個匿名內聯框(偽元素和文本節點).

下一步是獲取這些匿名內聯框中的第一個,偽元素,并通過向左浮動將其從正常流中取出,然后將其寬度設置為100%,并使其占據與高度匹配的高度兄弟&< p>的余量(我通過設置< p>的余量的一半來完成,但你可以通過設置與< p>的匹配的高度或下邊距來做同樣的事情.保證金).

現在前面的文本節點有一個人為的上邊距.問題仍然存在,為什么這不會影響< p>如果沒有前面的文本節點?我認為這是因為 – 因為沒有前面的文本節點 – 偽元素本身被渲染為應用它的元素內的空匿名塊框(作為偽元素,內容總是在應用它們的元素內部呈現),這與渲染空的< span>基本相同< p>之前的元素.

這是一個概念證明:

dd {

border: 1px dashed lightblue;

}

span {

float: left;

height: 1em;

width: 100%;

background-color: lightgray;

}

dd:not(:first-child)::before {

content: "";

float: left;

height: 1em;

width: 100%;

background-color: lightgray;

}

The dashed light blue line marks the paragraphs margin Box,the light grey Box is the span.

The dashed light blue line marks the paragraphs margin Box,the light grey Box is the pseudo element.

這個“人工邊緣”是一個左浮動的塊框(在偽元素的情況下是匿名塊框)在其包含元素內.如果他們需要,所有其他的塊盒都將向下移動(因為它們是根據W3C floating spec假設浮動盒子沒有為它們留下任何空間),這只發生在浮動盒開始超出它的邊緣時隱藏,并且它不會在這個特定問題的解決方案中發生,因為我特意將人工邊緣設置為與< p>的實際邊緣一樣高.

我認為秘密在于W3C浮動規范的這一部分,這有點難以理解:

Since a float is not in the flow,non-positioned block Boxes created

before and after the float Box flow vertically as if the float did not

exist. However,the current and subsequent line Boxes created next to

the float are shortened as necessary to make room for the margin Box

of the float.

A line Box is next to a float when there exists a vertical position

that satisfies all of these four conditions: (a) at or below the top

of the line Box,(b) at or above the bottom of the line Box,(c) below

the top margin edge of the float,and (d) above the bottom margin edge

of the float.

Note: this means that floats with zero outer height or negative outer

height do not shorten line Boxes.

If a shortened line Box is too small to contain any content,then the

line Box is shifted downward (and its width recomputed) until either

some content fits or there are no more floats present. Any content in

the current line before a floated Box is reflowed in the same line on

the other side of the float. In other words,if inline-level Boxes are

placed on the line before a left float is encountered that fits in the

remaining line Box space,the left float is placed on that line,

aligned with the top of the line Box,and then the inline-level Boxes

already on the line are moved accordingly to the right of the float

(the right being the other side of the left float) and vice versa for

rtl and right floats.

我理解這是指“在浮動框垂直流動之前和之后創建的非定位塊框,就像浮動不存在一樣”,因此< p> s,非定位塊框不應受到浮箱子.

但這并不意味著什么.相反,它指出,當盒子向左浮動時,在浮動盒子的右側創建一個線框,填充浮動盒子右側和容納盒子右側之間的空間.并且在該行框內部存在塊框,該框是隨后的< p>元件.如果那< p>元素可以適合滿足上述四個條件的空間,它將位于行框中的浮點旁邊.

由于浮點數設置為100%的寬度,因此< p>不適合浮動的盒子旁邊,它坐在它的線框內,向下移動到下一行,它以某種方式神奇地決定部分地遵守規則的第一部分:“之前創建的非定位塊盒和在浮動框垂直流動之后,好像浮動不存在“,這似乎只是邊緣的真實,因為只要浮動框超出邊距,塊框就會開始向下移動,也許是因為它位于還有一個線盒..

現在除了< td>之外的所有內容如果通過將包含內容的元素與其包含元素相抵消可以輕松完成,則可以輕松地將頂部添加的空間消失,這將非常簡單.

dd {

position: absolute;

margin-top: -1em;

}

dd:before {

float: left;

content: "";

width: 100%;

margin: 0.5em;

}

div {

position: relative;

/* everything below this line is for demonstration purposes only */

border-top: 1px dashed lightblue;

height: 80px;

}

An introductory sentence as a text node.

A further sentence as a paragraph.

An introductory sentence as a paragraph.

A further sentence as a paragraph.

我認為回答第二個問題,至少對于< dd>和< li>元素,甚至允許前一個文本節點中的內聯元素.

如果你想在< td>內進行此操作你必須開始管理< td>或< table>高度其他方式,因為你必須在< td>內使用絕對定位.并通過將表格單元格設置為display來阻止表格增長的默認表格行為:block; (或者通過在< td>中渲染一個額外的< div>并將其用作塊級元素,但這也會破壞默認的單元格增長行為).

table

{

width: 100%;

min-height: 80px;

float: left;

}

dd {

position: absolute;

margin-top: -1em;

}

dd:before {

float: left;

content: "";

width: 100%;

margin: 0.5em;

}

td {

position: relative;

display: block;

border-top: 1px dashed lightblue; /* this line is for demonstration purposes only */

}

An introductory sentence as a text node.

A further sentence as a paragraph.

An introductory sentence as a paragraph.

A further sentence as a paragraph.

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

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

相關文章

實現連麥_微信重磅更新,視頻號直播連麥打賞美顏上線,新增巨大流量入口

12月23日晚&#xff0c;微信迎來重大改版&#xff01;在最新7.0.20版本的微信中&#xff0c;視頻號大招不斷&#xff0c;不僅上線了連麥功能&#xff0c;支持美顏瘦臉、打賞等功能。此外&#xff0c;微信還給視頻號開放了兩個重大入口&#xff0c;包括微信個人名片和“發現”ta…

VMware Workstation 網絡設置解釋三種

一、NAT Network Address Translation&#xff0c;網絡地址轉換&#xff0c;NAT模式是比較簡單的實現虛擬機上網的方式&#xff0c;NAT模式的虛擬機時通過物理電腦上網和交換數據的。 在NAT模式下&#xff0c;虛擬機的網卡連接到物理機的VMware上&#xff0c;此時VMware軟件的…

cuda 核函數 for循環_【CUDA 基礎】4.4 核函數可達到的帶寬

Abstract: 本文通過矩陣轉置這一個例子&#xff0c;調整&#xff0c;優化核函數&#xff0c;使其達到最優的內存帶寬Keywords: 帶寬&#xff0c;吞吐量&#xff0c;矩陣轉置開篇廢話下面是廢話&#xff0c;與本文知識無關&#xff0c;可以直接跳到下面紅字處開始本文知識的學習…

小程序 - swiper除了左右切換還有上下滾動超出屏幕的內容

本來呢&#xff0c;我是有專門整理小程序惡心bug的文章的&#xff0c;每次只要添加匯總就好&#xff0c; 但是呢&#xff0c;鑒于這個問題的惡心程度&#xff0c;所以我把他單獨拿出來說了。 ——————————————--------------------------------------------------產…

學徒學計算機,那個有能力的高人愿意收我做學徒啊,我是學計算機的

類似問題答案我學的是計算機專業&#xff0c;南京有那些學校招這個專業啊&#xff1f;跟隨 已跟隨 取消 確定 你是說去學習還是去工作&#xff1f; 如果工作&#xff0c;現在很多對學位有一定要求&#xff0c;一般都要本科以上&#xff1b; 如果是學習&#xff0c;那也得看你自…

Linux磁盤分區及要求

一、分區 1、磁盤分區有主分區&#xff0c;擴展分區和邏輯分區之分。一塊磁盤最多有4個主分區&#xff0c;其中一個主分區的位置可以用一個擴展分區替換&#xff0c;在這個擴展分區內可以劃分多個邏輯分區。 2、一塊磁盤最多只能有一個擴展分區&#xff0c;擴展分區不能直接使…

二分查找和二叉查找樹

2019獨角獸企業重金招聘Python工程師標準>>> 1 二分查找 算法思想&#xff1a; 二分查找要求元素排列有序。首先&#xff0c;假設表中元素是按升序排列&#xff0c;將數組中間位置的元素與查找關鍵字比較&#xff0c;如果兩者相等&#xff0c;則查找成功&#xff1…

springboot判斷有沒有庫_Springboot 使用JPA @Query 注解 查詢語句條件 有可能為空,Oracle數據庫...

網上查了很多資料都是下面的方法,但是不適用于OracleQuery(value "select * from xxx where if(?1 !,x1?1,11) and if(?2 !,x2?2,11)" "and if(?3 !,x3?3,11) ",nativeQuery true)List find(String X1,String X2,String X3);——————————…

臺式計算機技術方案,2017年4月自考02316計算機應用技術真題及答案

本文提供的是2017年4月自考02316計算機應用技術真題及答案&#xff0c;真題不僅能幫助考生復習鞏固學到的知識&#xff0c;還能讓考生了解以往考試難易程度&#xff0c;真正掌握一套真題那么考試也不用擔心了。要考試的你一定要多多練習啊。2017 年 4 月高等教育自學考試全國統…

Linux磁盤編號

一、IDE接口磁盤 Linux的編碼規則是 /dev/hd* -------------------------------hda 第一塊盤 -------------------------------------------hda1 第一分區&#xff0c;hda2 第二分區&#xff0c;hda3 第三分區..... -------------------------------hdb 第二塊盤 …

Linux掛載點和文件系統類型介紹

一、掛載點 Mount Point 這是Linux下訪問磁盤分區的入口&#xff0c;即如果要往分區里寫入數據&#xff0c;就必須通過/boot入口來寫入&#xff0c;這一點和windows是不同的&#xff0c;因為在安裝Linux時&#xff0c;Mount Point項填寫 /boot二、文件系統類型 1、ext2/3/4&…

pythonint函數的參數_向嵌入的Python函數傳遞兩個參數(int和array)

我需要從我的模塊中調用Python函數并為其設置兩個參數&#xff1a;int和array。在現在我在調用這個函數的時候遇到了segfault&#xff0c;我不知道我做錯了什么。有人能指出我的錯誤在哪里嗎&#xff1f;在函數在我的Python模塊中應用程序副本. 如果我從Python代碼調用它&#…

理解lua中 . : self

文章目錄[點擊展開](?)[] 前言點號定義和調用冒號定義和冒號調用運行結果相互調用相互調用運行結果總結前言 在LUA中&#xff0c;經常可以看到&#xff1a;. self&#xff0c;今天在CSDN上看到一篇博客寫的很清楚&#xff0c;轉載過來 原文出處&#xff1a;http://blog.csdn.n…

適合初中文憑學的計算機技術,初中畢業學啥技術好 最吃香的手藝

很多初中畢業的初中生因為成績不是很理想&#xff0c;不能上一所理想的高中&#xff0c;所以選擇學一門技術&#xff0c;那么初中畢業學啥技術好呢&#xff0c;哪些手藝未來比較吃香呢&#xff0c;下面小編為大家分析一下初中畢業應該學什么手藝。初中畢業學哪些技術發展好汽修…

SecureCRT配置

一、下載 路徑&#xff1a;http://www.pc6.com/softview/softview_24396.html 里面有破解教程 二、配置 1、選擇仿真環境養眼的綠色字體黑色背景配置&#xff0c;選擇 traditional option->Global options –>default session -> edit default settings -> 修改…

左室短軸切面_一文讀懂心臟超聲基本切面

一. 本文出現的英文簡稱二.超聲心動圖基本切面采用與心臟相互垂直的三個基本平面&#xff0c;主要觀測心臟各房室腔內徑、容積和室壁厚度及其相關解剖結構運動狀態、功能等。檢查中探頭最常放置的位置包括心底部、心尖部、劍突下&#xff0c;鎖骨/胸骨上窩等。心臟超聲檢查中探…

怎么用計算機彈c哩c哩,計算器音樂c哩c哩樂譜 | 手游網游頁游攻略大全

發布時間&#xff1a;2016-06-29鏟子騎士樂譜有什么用 鏟子騎士樂譜賣不了怎么辦.不少鏟子騎士玩家收集了一些樂譜,那么這些樂譜功能是什么呢?下面99單機網小編給大家介紹鏟子騎士樂譜有什么用 鏟子騎士樂譜賣不了怎么辦. 樂譜可以賣錢,還可以更換游戲中的音樂 ...標簽&#x…

Windows 7 資源管理器搜索Channel 9 視頻

在Windows 7 中Federated Search 可以通過OpenSearch 協議訪問到遠程數據資源&#xff0c;也就意味著用戶可以使用資源管理器&#xff08;Windows Explorer&#xff09;搜索并瀏覽遠程數據。本篇我們將制作一個搜索連接器&#xff08;Search Connector&#xff09;查找Channel …

python django flask介紹_django和flask哪個值得研究學習

對于初學者來說&#xff0c;找到一個好的框架來學習或者項目開發都是非常有必要的&#xff0c;而當你有一定開發經驗后&#xff0c;你應該選擇適合當前業務需要的框架。我這里并不想探討哪個框架好哪個不好&#xff0c;這個永恒的話題就跟探討“世界上哪種編程語言最屌”是一樣…

sts html視圖編輯器,免費的HTML可視化編輯器HBuilder前端開發編輯器 | 老瘋子

互聯網上幾款比較熱門的編輯器Dreamweaver、Notepad、Sublime Text、Vim、Emacs等&#xff0c;這些或許你用過其中之一或許聽說過它們。這些都是國外人員開發的有些甚至被公認為是最受專業程序員喜愛的代碼編輯器(Vim和Emacs)。都是國外的&#xff0c;那國內的呢&#xff1f;當…