浮動(dòng)布局float(隨意通俗篇)

在寫(xiě)了flex布局這篇文章后剧辐,我就特別想寫(xiě)一下float的使用夹攒,也想寫(xiě)一下較新的display:grid蜘醋。grid以后突然想寫(xiě)了再寫(xiě)。先來(lái)一篇大話(huà)版float布局咏尝。


1压语、css布局得5種形式:

1、默認(rèn)文檔流方式:以默認(rèn)的HTML元素的結(jié)構(gòu)的順序顯示

2编检、浮動(dòng)布局方式:通過(guò)HTML元素的float屬性顯示

3胎食、定位布局方式:通過(guò)設(shè)置HTML元素的position屬性顯示

4、flex布局方式:使布局簡(jiǎn)單允懂、自適應(yīng)(響應(yīng)式)

5厕怜、grid布局方式:類(lèi)似flex布局,甚至比f(wàn)lex更簡(jiǎn)單蕾总,不過(guò)對(duì)瀏覽器的兼容性更差

2粥航、什么是float?

浮動(dòng)是將該塊元素從原來(lái)的文檔流模式中分離出來(lái)生百,它后面的對(duì)象递雀,就視它不存在,從而占領(lǐng)它的位置蚀浆。

常用的布局效果缀程,例如,在一行中蜡坊,顯示幾個(gè)塊元素杠输,就全部元素都用float(用flex或者grid就來(lái)得非常簡(jiǎn)單)。

注意:

? ? ? ? 1秕衙、浮動(dòng)到的位置是它的父元素的位置蠢甲,如:在li標(biāo)簽中使用float,則浮動(dòng)到的位置是ul的位置据忘;

? ? ? ? 2鹦牛、在IE6下,當(dāng)父元素中的子元素的高度超過(guò)了父元素的高度勇吊,則子元素會(huì)把父元素的高度撐大到子元素的高度曼追。

float屬性的屬性值:

? ? ? ?1、none ?//不浮動(dòng)

? ? ? ?2汉规、left ?//元素向左浮動(dòng)礼殊,而后面的內(nèi)容流向?qū)ο蟮挠覀?cè)

? ? ? ?3驹吮、right ?//對(duì)象向右浮動(dòng),而后面的內(nèi)容流向?qū)ο蟮淖髠?cè)

3晶伦、清除浮動(dòng)clear

當(dāng)元素有浮動(dòng)屬性時(shí)碟狞,會(huì)對(duì)其父元素或后面的元素產(chǎn)生影響,會(huì)出現(xiàn)布局錯(cuò)亂現(xiàn)象婚陪,可以通過(guò)清除浮動(dòng)的方式來(lái)解決浮動(dòng)元素的影響族沃。

對(duì)父元素的影響:

? ? ?1、當(dāng)子元素浮動(dòng)時(shí)泌参,父元素不再具有獨(dú)占一行的能力脆淹,后面的元素會(huì)跑上來(lái)和它重疊,所以它下面的元素必須要加清除浮動(dòng)clear:both;

? ? ?2沽一、當(dāng)子元素都是float時(shí)盖溺,父元素的高度就不能自動(dòng)適應(yīng)子元素的高度而自動(dòng)增減高度來(lái)適應(yīng),從而導(dǎo)致父元素的內(nèi)容消失锯玛。

解決方案:

? ? 1咐柜、直接在最下面加入一個(gè)空的子元素塊(<div style='clear:both'></div>)

? ? 2兼蜈、在父元素中設(shè)置overflow:hidden;

? ? ? ? ? css中溢出的使用overflow:設(shè)置當(dāng)對(duì)象的內(nèi)容超過(guò)其指定的高度及寬度時(shí)攘残,進(jìn)行管理值:

? ? ? ? ? overflow:visible; ?//默認(rèn)值,不剪切內(nèi)容为狸,也不添加滾動(dòng)條

? ? ? ? ? overflow:auto; //在必須時(shí)歼郭,對(duì)象內(nèi)容才會(huì)被剪切或者顯示滾動(dòng)條

? ? ? ? ? overflow:hidden; ?//不顯示超過(guò)對(duì)象尺寸的內(nèi)容

? ? ? ? ? overflow:scroll; ?//總是顯示滾動(dòng)條

? ? 3、用偽類(lèi)after辐棒,在問(wèn)題6中解析(最下面)

實(shí)質(zhì)作用原理:

? 1病曾、當(dāng)(元素A)clear:left時(shí),會(huì)把前面的(B元素)屬性float:left漾根,視為存在(即B元素的獨(dú)立行起作用)泰涂,元素A只能在元素B的下一行,不能浮到B的位置(重合)

? 2辐怕、當(dāng)(元素A)clear:right時(shí)逼蒙,會(huì)把前面B元素屬性float:right,視為存在(即B元素的獨(dú)立行起作用)寄疏,元素A只能在元素B的下一行

? 3是牢、只有clear:left對(duì)應(yīng)float:left; clear:right對(duì)應(yīng)float:right一一對(duì)應(yīng)時(shí),才起作用陕截,否則都不起清除作用

? 4驳棱、當(dāng)clear:both時(shí),就是不管float:(left||right)农曲,清除都起作用

clear屬性的4個(gè)屬性值:none社搅、left、right、both


對(duì)float浮動(dòng)的領(lǐng)悟:

? ? ? ? ?float有三個(gè)值:none形葬、left却汉、right(不浮動(dòng)、向左浮動(dòng)荷并、向右浮動(dòng))合砂;使用浮動(dòng)時(shí),整個(gè)元素塊就會(huì)脫離文檔流源织,也會(huì)脫離出該元素的父元素包含的范圍翩伪,成為獨(dú)立元素塊,但該元素塊不會(huì)影響它前面的元素塊谈息,但會(huì)影響它的父元素和父元素后面的兄弟元素缘屹、該元素下面的兄弟元素。

? ? ? ? 解決問(wèn)題的本質(zhì)是:把float的元素塊控制在父元素的內(nèi)部侠仇,使浮動(dòng)效果只在父元素內(nèi)轻姿。有兩種方法:

? ? ? ?1、父元素使用overflow:hidden逻炊、auto互亮、scroll。 原理是:對(duì)父元素的子元素進(jìn)行計(jì)算余素,判斷是否有超出父元素的大小豹休,這樣就會(huì)促使對(duì)float元素計(jì)算在內(nèi),使float元素塊被控制在父元素內(nèi)桨吊,不會(huì)脫離父元素的范圍威根,依然是父元素的一部分。這樣就只是在父元素內(nèi)float视乐,父元素外依然是正常流分布洛搀。

? ? ? ?2、在float元素的下一個(gè)兄弟元素內(nèi)使用clear:both;是該兄弟元素認(rèn)為float元素依然存在正常文檔流中佑淀,這樣也起到和上面1相同的作用留美。

? ? ? 目的:讓float元素塊控制在父元素的范圍內(nèi),成為父元素的一部分渣聚,只在父元素內(nèi)部起到浮動(dòng)作用独榴。不會(huì)脫離父元素的包圍范圍內(nèi)。


4奕枝、解決原來(lái)在同一行上的塊元素棺榔,因?yàn)闉g覽器窗口的大小改變,而改變位置(flex和grid就不會(huì))

原來(lái)的樣子:


原來(lái)的樣子

窗口改變后的樣子:


窗口改變后的樣子

解決方案:只需要加一個(gè)大的塊元素把兩個(gè)塊元素包含在一起


5隘道、解決塊元素的水平居中的方法(div水平居中)

直接加: margin:0 auto;(外邊距margin:左右自動(dòng)auto)症歇,但必須給該元素加必要的寬度width郎笆;

注意:當(dāng)出現(xiàn)浮動(dòng)float時(shí),通過(guò)margin:0 auto;就不起作用了

如:{

? ? ? ?margin:0 auto; //水平居中就不起作用了

? ? ? ?float:left;

}

6忘晤、塊元素的定位:position

設(shè)置對(duì)象的定位方式

屬性值:

1宛蚓、static :靜態(tài)定位,頁(yè)面中的每一個(gè)對(duì)象的默認(rèn)值设塔。

2凄吏、absolute:絕對(duì)定位,將對(duì)象從文檔流中分離出來(lái)闰蛔,通過(guò)設(shè)置left痕钢、right、top序六、bottom四個(gè)方向相對(duì)于父級(jí)對(duì)象進(jìn)行絕對(duì)定位任连。如果不存在這樣的父對(duì)象,則依據(jù)body對(duì)象例诀。如:{ position:absolute; ?top:100px; ? left:100px;}

注意:

? ? 父元素加定位屬性随抠,一般使用position:relative; 否則子元素不認(rèn)父元素,認(rèn)上層帶有position:relative的元素為父元素繁涂,除非子元素只用position:absolute;不用到left拱她、right、top爆土、bottom屬性

3椭懊、relative:相對(duì)定位,原來(lái)對(duì)象不從文檔流中分離步势,通過(guò)設(shè)置left、right背犯、top坏瘩、bottom四個(gè)方向相對(duì)自身位置進(jìn)行定位,但定位到新位置后就是從原來(lái)文檔流分離出來(lái)(新位置分離漠魏,原位置還占領(lǐng)著)

7倔矾、利用偽類(lèi)對(duì)象after方法:必須要有content:""屬性,用在父元素中

? ? ? 定義一個(gè)類(lèi)柱锹,使用偽對(duì)象after哪自,控制浮動(dòng)元素的影響,清除浮動(dòng)代碼如下:

.clearFix:after{

? ? ? ? ?clear:both;

? ? ? ? ?display:block;

? ? ? ? ?visibility:hidden;

? ? ? ? ?height:0;

? ? ? ? ?line-height:0;

? ? ? ? ?content:"";

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末禁熏,一起剝皮案震驚了整個(gè)濱河市壤巷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瞧毙,老刑警劉巖胧华,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寄症,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡矩动,警方通過(guò)查閱死者的電腦和手機(jī)有巧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)悲没,“玉大人篮迎,你說(shuō)我怎么就攤上這事∈咀耍” “怎么了柑潦?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)峻凫。 經(jīng)常有香客問(wèn)我渗鬼,道長(zhǎng),這世上最難降的妖魔是什么荧琼? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任譬胎,我火速辦了婚禮,結(jié)果婚禮上命锄,老公的妹妹穿的比我還像新娘堰乔。我一直安慰自己,他們只是感情好脐恩,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布镐侯。 她就那樣靜靜地躺著,像睡著了一般驶冒。 火紅的嫁衣襯著肌膚如雪苟翻。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,554評(píng)論 1 305
  • 那天骗污,我揣著相機(jī)與錄音崇猫,去河邊找鬼。 笑死需忿,一個(gè)胖子當(dāng)著我的面吹牛诅炉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播屋厘,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼涕烧,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了汗洒?” 一聲冷哼從身側(cè)響起议纯,我...
    開(kāi)封第一講書(shū)人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎仲翎,沒(méi)想到半個(gè)月后痹扇,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體铛漓,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年鲫构,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了浓恶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡结笨,死狀恐怖包晰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情炕吸,我是刑警寧澤伐憾,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站赫模,受9級(jí)特大地震影響树肃,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜瀑罗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一胸嘴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧斩祭,春花似錦劣像、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至诬像,卻和暖如春屋群,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背颅停。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工谓晌, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人癞揉。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像溺欧,于是被迫代替她去往敵國(guó)和親喊熟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案姐刁? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,754評(píng)論 1 92
  • 前言 在MyLayout的6大布局中芥牌,每種布局都有不同的應(yīng)用場(chǎng)景。且每種布局的子視圖的約束機(jī)制不一樣:線性布局...
    歐陽(yáng)大哥2013閱讀 7,898評(píng)論 4 29
  • 數(shù)年前聂使,當(dāng)開(kāi)發(fā)者首次開(kāi)始不使用table 來(lái)布局網(wǎng)頁(yè)時(shí)壁拉,CSS中的一個(gè)property突然間顯得格外重要谬俄,該屬性就...
    花括弧閱讀 549評(píng)論 0 2
  • 一、浮動(dòng)元素有什么特征弃理?對(duì)父容器溃论、其他浮動(dòng)元素、普通元素痘昌、文字分別有什么影響? 特征:1钥勋、浮動(dòng)模型是一種可視化格式...
    青鳴閱讀 999評(píng)論 0 0
  • CSS中的float屬性簡(jiǎn)介 幾乎所有會(huì)WEB前端開(kāi)發(fā)的同學(xué)都知道CSS中有一個(gè)float屬性用于實(shí)現(xiàn)HTML元素...
    歐陽(yáng)大哥2013閱讀 2,804評(píng)論 5 26