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> &
算法:用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素為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-用兩個棧來實現一個隊列,完成隊列的Push和Pop操作
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