CSS line-hight ,vertical-align,父元素高度以及行框,行內框的關係
總結:
1.line-height 決定了此元素中的文字的排版,例如如果是多行文字,設定行高小於字型大小可以看到文字重疊(line-height - 文字大小 = 行距),但文字大小不變,字型大小隻是影響內容區,可替換元素設定line-height後沒什麼反應。
2.某元素的inline box(行內框),受line-height以及其子元素影響,如果line-height設定的高度小於子元素形成的line box(行記憶體在圖片撐開),子元素形成的line box(行框)就是該元素的inline box(行內框);如果line-height大於子元素形成的line box則父元素的inline box就是line-height設定的inline box。
3.line box由該行每個元素的行內框來決定,最後取最高的inline box的 上邊界和最低的inline box 元素的下邊界分別作為line box的上下邊界,而不是由各inline 元素 的line-height決定;並且父元素的line-height並不等於該行line box 的高度。
4.只有inline或inline-block元素可以設定vertical-align 屬性,表示inline 元素垂直方向上的對齊方式;
4a. vertical-align:baseline表示與父元素(父元素的inline box)的baseline 對齊,父元素的baseline是由其內部字母x的下邊緣決定;vertical-align : top/bottom表示該行元素的inline box上(下)邊緣對齊後與父元素的top(bottom)對齊。(baseline,top,bottom是跟inline box相關的,而不是內容區)。
5.文字排版是根據line box來的,如果line box中存在可替換元素(圖片),而該可替換元素的高度撐開了line box,那麼line box 的高度會變大,而line-height還是原先設定的,此時,下一行文字會直接跑到下一行,而不去管line-height設定多少,此時,上下兩行的文字可能就大於設定的line-height。
6.行內替換元素的width,height,padding,margin四個方向都正常顯示,並且,margin/padding 設定可以改變行高;而行內非替換元素,margin只有水平方向可以正常顯示,padding四個方向可以顯示,但是垂直方向不佔空間,所以顯示的效果是會覆蓋上面元素,同時,行內非替換元素的margin/padding設定不會改變行高line-height.
相關推薦
CSS line-hight ,vertical-align,父元素高度以及行框,行內框的關係
總結: 1.line-height 決定了此元素中的文字的排版,例如如果是多行文字,設定行高小於字型大小可以看到文字重疊(line-height - 文字大小 = 行距),但文字大小不變,字型大小隻是影響內容區,可替換元素設定line-height後沒什麼反應。
【css】子元素浮動到了父元素外,父元素沒有隨子元素自適應高度,如何解決?
正常情況 如果子元素沒有設定浮動(float),父元素的高度會隨著子元素高度的改變而改變的。 設定浮動以後 父元素的高度不會隨著子元素的高度而變化。 例如:在一個ul中定義若干個li,並設定float='left' <!DOCTYPE html> <html lang="en"&g
CSS深入理解vertical-align和line-height基友關係的複雜現象
為了讓任意個數的列表最後一行也是對齊排列,在列表最後會輔助列表等寬的空標籤元素來佔位,類似下面紅色高亮HTML程式碼: .justify-fix { display: inline-block; width: 128px; } <div sty
CSS深入理解vertical-align和line-height的基友關係
本來以為今天又要到家十來點,蹲在我的小窗戶前吭哧吭哧寫筆記,沒想到這會兒我負責的兩個頁面,介面都掛了,咩哈哈,不用回家頓小窗臺了,咩哈哈哈~ 俗話說,死宅腐女還有啥來著註定單身狗,反正這三樣我確實是全佔了的,非常願意研究基腐問題,科科。 那麼看看CSS屆的v
css---父元素高度不確定,如何通過css樣式垂直居中
案例程式碼: <div id='box'> <section class='boxLeft'> <ul> <
父容器div內的子元素div為float時,父元素無法撐開(或高度自適應)的解決方式以及css中position和float的介紹
先簡單給出父元素無法高度自適應時的解決方案: 第一種:在父容器上設定 overflow:auto或者hidden可以讓它自動包含子元素,從而具有了實際的height值。 第二種:在子元素的最下面加上一個 空元素,並且設定clear:both,但
Vue.js如何獲得兄弟元素,子元素,父元素(DOM操作)
<button @click = “clickfun($event)”>點選</button> methods: { clickfun(e) { // e.target 是你當前點選的元素 // e.currentTarget 是你繫結事件的元素 } }, #獲得點選元素的
CSS中父div與子div——子div有內容,父div高度卻為0
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
使用float浮動之後,父元素“塌陷”的解決辦法
常常在並排div的時候使用到float屬性,但是使用之後會發現他們的父元素會沒有高度,之後的元素會“擠上來”,造成“塌陷”。 比如,我們想要的如下效果: 程式碼如下: <!DOCTYPE html> <html> &nb
CSS子元素浮動導致父元素高度塌陷問題
根據W3C標準,在頁面中元素都有一個隱含的屬性叫做 Block Formatting Context,簡稱 BFC,該屬性可以設定開啟或者關閉,預設是關閉的。 當開啟元素的BFC以後,元素會具有以下特性: 1.父元素的垂直外邊距不會和子元素重疊
Vue.js 獲得兄弟元素,子元素,父元素(DOM操作)
pre lin col bsp 操作 attr current 綁定 tar e.target 是你當前點擊的元素 e.currentTarget 是你綁定事件的元素 e.currentTarget.previousEle
css:理解vertical-align
css:理解vertical-align 一、vertical-align的定義: (1)vertical-align 屬性用於定義“周圍的文字、inline 元素以及 inline-block 元素”相 對於該元素基線的垂直對齊方式。這裡的“該元素”指的是被定
css中的vertical-align的垂直居中對齊
先來看規範文件中對於vertical-align屬性的定義及使用: 基線:就是英文小寫字母x的下邊緣。 常見的我們用於設定父元素內子元素(或子元素們)(為inline或inline-block)的對齊。 父元素為block,需設定line-height 如何實現子元素在父元素中居中
scale放大,父元素overflow:hidden失效的問題
這和 CSS 的 stack context 有關 解決方法是給 “”父“”容器wrap 新增 position: relative; z-index: 1 的樣式就好了, 什麼?照我說的做,還是沒效果?大兄弟,檢查下你的dom巢狀寫的對不對
給子元素設定了margin後,父元素的跟著一起動了
一般就是給父元素設定overflow: hidden;即可解決問題,之所以出現這種情況的原因是:普通文件流盒子間,只要垂直外邊距直接接觸就會發生合併,合併後外邊距視覺高度取兩個發生合併外邊距中較大者。發生這一現象的有三種情況:相鄰兄弟塊元素間、父元素及其首子元素和末子元素間
css display和vertical-align 屬性
display
padding-top的值用的是百分比,實際顯示的不是父元素高度的百分比,而是寬度的百分比!margin-top同理
瀏覽器直接顯示,height是662px,我自己的計算padding-top是662px*30% = 198.6px。 而實際是162px,反推過去,162px / 30% = 540px。即父元素的寬!
css之子元素浮動導致父元素高度塌陷解決方案
問題引入:在製作導航欄時,若父元素ul不給出高度的具體數值,只給背景。而子元素li又用到了float:left。 那麼,這種情況就會導致父元素的背景“消失”,因為浮動元素脫離文件流,不佔據空間,因此相當於父列表沒有內容。 解決方案: 一:新增進行清理浮動的元素(但書中說,這
CSS屬性:vertical-align:middle,設定為什麼無效!
最近,在學習CSS中,每次對一個頁面進行排版的時候,總是需要對文字居中,每次在div裡面設定text-align和vertical-algin兩個屬性就會以為他會居中! 廢話不多說了!直接上程式碼!
CSS中子元素浮動導致父元素高度塌陷解決方案
<style type="text/css"> #container { border: 1px solid green; } .div1 { float: left; width: 100px; height: 100px; } .div2 {