述
在我們日常的書寫代碼中,經常使用到float:left/right和position:absoulte/fixed,我們都知道這幾個CSS樣式都能使HTML中的元素脫離文檔流(normal-flow),但是他們脫離文檔流之后的效果是否相同呢?
文檔流與文本流
文本流,簡單來說就是元素內部的一系列的字符的排列規則。
文檔流,英文是normal flow,又翻譯為常規流,標準流,正常流,普通流等。
文檔流指的是HTML中元素在計算布局排版的過程中,所有處于文檔流中的元素會自動地從左到右(非塊級元素),從上到下(塊級元素)的排列規則。
元素在排版中的定位類型分為三種:
(1)文檔流:塊級格式化的塊級盒子, 行內格式化的行內盒子以及相對定位的塊級盒子和行內盒子
(2)浮動(float)
換流的作用就是將我們的字節流轉換成字符流
字節流是可以處理一切內容的,包括圖片,音頻,視頻,也包括純文本,在很多系統和框架的底層返回給我們的都是字節流(有時候我們使用字節流處理并不方便,這就是我們為什么要轉換字符流的原因)
System.in,System.out都是字節流,因為我們鍵盤輸入還是輸出的都是字符串,所以我們可以對它進行轉換。
在我們的底層,如果是純文本的話就涉及到一個東西是字符集。將字節轉成字符叫做解碼(在解碼的過程中就涉及到字符集的問題,如果工程的字符集跟源頭(文件)的字符集不統一就會出現亂碼),所以這個時候我們最好可以指定字符集
從字節流到字符流的轉換
只要我們看見Reader都建議加一個BufferedReader
將寫入的字符編碼為字節
講一下什么使用字節流,什么時候使用字符流
其實底層都是字節,我們使用字符是為了處理一些文本和字符串提高性能字符流處理的單元為2個字節的Unicode字符,分別操作字符、字符數組或字符串,而字節流處理單元為1個字節,操作字節和字節數組。所以字符流是由Java虛擬機將字節轉化為2個字節的Unicode字符為單位的字符而成的,所以它對多國語言支持性比較好!如果是音頻文件、圖片、歌曲,就用字節流好點,如果是關系到中文(文本)的,用字符流好點 所有文件的儲存是都是字節(byte)的儲存,在磁盤上保留的并不是文件的字符而是先把字符編碼成字節,再儲存這些字節到磁盤。在讀取文件(特別是文本文件)時,也是一個字節一個字節地讀取以形成字節序列
字節流和字符流的使用:
Java IO流中提供了兩種用于將字節流轉換為字符流的轉換流。其中InputStreamReader用于將字節輸入流轉換為字符輸入流,其中OutputStreamWriter用于將字節輸出流轉換為字符輸出流。使用轉換流可以在一定程度上避免亂碼,還可以指定輸入輸出所使用的字符集
講一下緩存流和轉換流的結合,看見Reader我們就可以使用緩存流提高性能
使用轉換流實現字節到字符的轉換以及輸入和輸出
· 節點流:可以從或向一個特定的地方(節點)讀寫數據。如FileReader.
· 處理流:是對一個已存在的流的連接和封裝,通過所封裝的流的功能調用實現數據讀寫。如BufferedReader.處理流的構造方法總是要帶一個其他的流對象做參數。一個流對象經過其他流的多次包裝,稱為流的鏈接。
講一下什么是節點流
字符流和字節流就可以叫做節點流
出現亂碼的原因有兩種:
1.字節數不夠出現亂碼
2.字符集不統一出現亂碼
html文件的下載,如何使用字節流,如何使用轉換流
在java中文件的傳輸其實就是靠流來實現的,網絡流也是屬于字節流,所以我們先使用字節流
我覺得寫的時候應該是全部都寫出來才寫的,具體debug才知道,我這里就不弄了
為什么讀取的時候亂碼,寫入的時候不亂碼
忽然一下子自己就懂了,總之寫入的時候只要講字符集設置的和源頭的文件一致就可以了
先,我們來看一下什么是瀑布流布局效果,比如電商網站 蘑菇街
原理圖:
在一個大盒子里,放置多個小盒子,小盒子的大小可以不一致,長短不一樣,呈現一種瀑布流的效果。
使用CSS3S實現只需要如下4步:
1. 準備圖片素材
2. 書寫相應HTML結構
3. 了解CSS 多欄(Multi-column) 屬性
4. 使用CSS 多欄屬性完成瀑布流布局
*請認真填寫需求信息,我們會在24小時內與您取得聯系。