1. 程式人生 > >CSS float的初步理解:用兩種不同的方式來實現一個三列布局,其中左側和右側的部分寬度固定,中間部分寬度隨瀏覽器寬度的變化而自適應變化

CSS float的初步理解:用兩種不同的方式來實現一個三列布局,其中左側和右側的部分寬度固定,中間部分寬度隨瀏覽器寬度的變化而自適應變化

最近在學習web前端的知識,今天看IFE平臺上的開源題目的時候,遇到了一個問題(小白就是小白)TAT,問題實現很簡單,但由於自己基礎還沒打牢,半天解決不了,問題如標題所述,實現效果如圖:


要求:

用兩種不同的方式來實現一個三列布局,其中左側和右側的部分寬度固定,中間部分寬度隨瀏覽器寬度的變化而自適應變化

後來重新學習了下float浮動的相關知識,對此有了新的理解,發現前端不是那麼容易的TAT

主要參照了網上寫的比較好的博文,感覺很好理解:

下面是理解後個人感覺最舒服的寫法:

css程式碼如下

.left{
	width: 400px;
	height: 50px;
	background: red;
	float:left;
}

.middle{

	margin-right: 400px;
    margin-left: 400px;
    height: 50px;
    background: blue;
}
.right{
	width: 400px;
	height: 50px;
	float: right;
	background: yellow;
}

html程式碼:

<div class="left"> </div>
<div class="right"></div>
<div class="middle"></div>
學習完之後寫了一次,犯了一點小錯誤,錯誤程式碼如下
	<div class="left"> </div>
	<div class="middle"></div>
	<div class="right"></div>

第一次寫的時候先寫了middle的div,而middle是正常的標準流中的內容,也就是沒有設定float屬性,也就是後面right對應div的上一個元素(middle對應的div)不是浮動的,因此right的頂部總是和上一個元素的底部對齊,實際效果是這樣的:


又仔細研讀了網上博文,終於改對了,感謝大佬!

個人覺得原博文中比較精髓的內容如下(原文中有標註):

假如某個div元素A是浮動的,如果A元素上一個元素也是浮動的,那麼A元素會跟隨在上一個元素的(如果一行放不下這兩個元素,那麼A元素會被擠到下一行);如果A元素上一個元素是標準流中的元素,那麼A的相對垂直位置不會改變,也就是說A的頂部總是和上一個元素的底部對齊。

       div的順序是HTML程式碼中div的順序決定的。

前面的路還很長哇!

相關推薦

CSS float初步理解不同方式實現一個其中左側右側部分寬度固定中間部分寬度瀏覽器寬度變化適應變化

最近在學習web前端的知識,今天看IFE平臺上的開源題目的時候,遇到了一個問題(小白就是小白)TAT,問題實現很簡單,但由於自己基礎還沒打牢,半天解決不了,問題如標題所述,實現效果如圖:要求:用兩種不同的方式來實現一個三列布局,其中左側和右側的部分寬度固定,中間部分寬度隨瀏覽

不同方式實現一個其中左側右側部分寬度固定中間部分寬度瀏覽器寬度變化適應變化

HTML程式: <div style="padding: 0 400px 0 300px;" class="box"> <div id="box5">box5</div> <div id="box6">box6

根據HTML+CSS完成一個右側欄寬為180px高為300px;中間適應高為300px;中間欄子元素(寬高不確定)實現水平、垂直居中。

使用Flex佈局,更加方便。HTML程式碼省略,以下只是CSS樣式的程式碼,僅供參考。 <!DOCTYPE html> <html> <head> <title></title> </head> &

算法個棧實現一個完成隊的PushPop操作。 隊中的元素為int類型。《劍指offer》

pack 代碼 exception 隊列 imp scrip 入棧 return tro 算法:用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素為int類型。《劍指offer》 利用棧來進行操作,代碼註釋寫的比較清楚:首先判斷兩個棧是否是空的:

css佈局之中間適應

一、通過float浮動 <div class="left"> 左邊 </div> <div class="right"> 右邊 </div> <div class="center"> 中間 </div>

float 浮動 div 不瀏覽器解析度 大小位置發生變化

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/x

個棧實現一個

8K turn 圖片 node 技術 空間 sem str import 題目: 用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素為int類型 限制: 時間限制:1秒 空間限制:32768K 熱度指數:240468 1 package com.a

面試題9-個棧實現一個完成隊的PushPop操作

ati import str highlight print row pty 用兩個棧 div 題目 用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素為int類型。 思路: 一個棧壓入元素,而另一個棧作為緩沖,將棧1的元素出棧後壓入棧2中

關於頁面的多種適應佈局——

簡單結構1,列表在前,更多列表在中間,內容在後 1 <style type="text/css"> 2 .layout{background-color:gray; padding:10px; border:10px solid orange; margin:10px 0; zoom:

Python-資料結構與演算法(十一、字典(對映)——基於不同的底層實現

保證一週更兩篇吧,以此來督促自己好好的學習!程式碼的很多地方我都給予了詳細的解釋,幫助理解。好了,幹就完了~加油! 宣告:本python資料結構與演算法是imooc上liuyubobobo老師java資料結構的python改寫,並添加了一些自己的理解和新的東西,liuyubobobo

使用 awk 生產表的不同方式

使用 awk 生產表的兩種不同方式 awk 可以用於解決重複性高的任務,核心在於使用 awk 來批量的生成需要的表。這裡的表既可以是特定的格式設定,如圖形介面中的 style ,也可以是程式碼或者其它。 這裡我以圖形介面中的 style 為例。 當我需要對多個功能不同,操作方

DIV+CSS佈局第一部分以及組合佈局舉例說明

DIV+CSS佈局一一列布局:<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <

不同方式解決八皇后問題

問題描述 八皇后問題是一個以國際象棋為背景的問題:如何能夠在8×8的國際象棋棋盤上放置八個皇后,使得任何一個皇后都無法直接吃掉其他的皇后?為了達到此目的,任兩個皇后都不能處於同一條橫行、縱行或斜線上。 解決思路 這個問題可以有兩種解決方法,一種是使用遞

PHP二維數組合並的不同方式

第一種合併方式:        通過PHP的陣列API給出的array_merge方法來合併一個數組    程式碼: $a = array(array("1","2"),array("

kafka0.8版本sparkstreaming整合的不同方式

最近研究了不同kafka版本和sparkstreaming整合時的區別,整理如下 1- kafka-0.8.2以上kafka-0.10以下 一種是基於receiver的,一種是沒有receiver的,兩種不同的方式有不同的程式設計模型、效能特徵

java 位運算中移動位數超過資料長度右移的不同方式

記錄 java 位運算中的兩點注意事項:移動位數超過資料長度和右移的兩種不同方式。 int、long型別資料移動等於或超過最大位數 在 java 中,int 型別的資料長度為 32 位,如果將 int 型別左移或者右移大於或等於 32 位時,並不會像預計

html div佔滿全屏(左右定寬或者百分比、中間自動適應div在父div中居底)

     div佈局: <div>             <div id="header">                 上                 <div id="h_menu">                

慕課筆記利用css進行

cnblogs middle ddl image ext -1 技術 http width 三個div中間自適應,兩側固定大小 <html> <head> <title>三列布局</title> <style

css實現

1.  使用float實現三列左右固定寬高,中間自適應寬度 <section class="wrapper"> <div class="left"></div> <div class="right"></div> <

CSS總結

三列布局就是左右兩欄定寬且不一定相等,中間一欄自適應。 假設我們要實現一個左邊固定200px,右邊固定300px,中間自適應的佈局。 有以下幾種方法: 1.聖盃佈局 這種方式的DOM順序一定要是middle在前,然後是left和right。 HTML程式碼如下: <ht