1. 程式人生 > >CSS line-hight ,vertical-align,父元素高度以及行框,行內框的關係

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-alignline-height基友關係的複雜現象

為了讓任意個數的列表最後一行也是對齊排列,在列表最後會輔助列表等寬的空標籤元素來佔位,類似下面紅色高亮HTML程式碼: .justify-fix { display: inline-block; width: 128px; } <div sty

CSS深入理解vertical-alignline-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 是你繫結事件的元素 } }, #獲得點選元素的

CSSdiv與子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 {