什么是overflow屬性,flow的變化形式有多少種?
flow
v. 流;流動;流出;來自;富有;順利進(jìn)行;漲潮;水位上升;飄拂
upflow
v. 向上流
flowable
adj 易流動的
inflow
n. 涌入;流入
counterflow
n. 逆流
contraflow
n. 反向車流
underflow
n. 暗流;下溢;潛流;底流
reflow
n. 回流;回熔焊接;重排版
overflow
v. 溢出;滿得溢出;容納不下;擠滿人了;淹沒;充滿;洋溢
overflowing
n. 溢出物;過剩;溢流;溢出
interflow
v. 交織;混合;混雜
flowage
n. 流動;泛濫;流出
DW網(wǎng)頁設(shè)計中如何給整個網(wǎng)頁設(shè)置滾動條?
css屬性 overflow-y:auto; DIV里面的內(nèi)容超過DIV的高度,右邊就會自動出現(xiàn)滾動條1、用一個div,定制成圖中的寬度和高度2、然后再把div的樣式設(shè)成overflow-y:scroll,當(dāng)div里的文字超出那個高度的時候,滾動條就出來了。例如:<div style="width:100px; height:100px; overflow:auto; border:1px solid #000000;"><img src="" style="width:300px; height:300px;"></div>
overflow和stack有什么區(qū)別?
顧名思義,stack overflow 就是是棧溢出了。在進(jìn)行數(shù)值運算時,我們常常要和運算結(jié)果的溢出打交道。數(shù)值運算結(jié)果可能上溢(overflow),也可能是下溢(underflow)。不過棧的溢出顯然只可能是上溢,即棧空間被用完了。在提起“棧”(stack)這個概念的時候,千萬不要忘記了它的兄弟“堆”(heap),也要切記不要把二者搞混了。
那么,什么時候會把給用完了呢?如果我們記得C程序中的局部變量是在棧中分配的,函數(shù)調(diào)用會占用一部分棧空間,則可以很容易地構(gòu)造出相應(yīng)的測試用例。
1、定義占用空間過大的局部變量所導(dǎo)致的棧溢出
C:\> more stack_local.c
/*
* Allocate too much memory from stack will cause stack overflow.
*/
#include <stdio.h>
int main(int argc, char *argv[])
{
int foo[1000000];
return 0;
}
C:\> cl stack_local.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
stack_local.c
Microsoft (R) Incremental Linker Version 8.00.50727.42
Copyright (C) Microsoft Corporation. All rights reserved.
/out:stack_local.exe
stack_local.obj
C:\> stack_local
此時出現(xiàn)一個異常對話框:stack-local.jpg 。
2、函數(shù)遞歸調(diào)用導(dǎo)致的棧溢出
C:\> more stack_recursive.c
/*
* Infinite recursive calls will lead to stack overflow soon.
*/
#include <stdio.h>
static void foo(void);
static void bar(void);
int main(int argc, char *argv[])
{
foo();
return 0;
}
static void foo(void)
{
bar();
}
static void bar(void)
{
foo();
}
C:\> cl stack_recursive.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
stack_recursive.c
Microsoft (R) Incremental Linker Version 8.00.50727.42
Copyright (C) Microsoft Corporation. All rights reserved.
/out:stack_recursive.exe
stack_recursive.obj
C:\> stack_recursive
該程序沒聲沒息就結(jié)束了。查看進(jìn)程返回值能發(fā)現(xiàn)它其實是異常終止了。只不過沒有像 stack_local 那樣彈出一個對話框。
C:\> echo %errorlevel%
-1073741819
要搞清楚這兩個程序為什么有這點細(xì)微的區(qū)別,可以查閱一下二者的匯編代碼。原來是 _chkstk() 在起作用,其中 stack_local 在程序初始加載時就會導(dǎo)致 _chkstk() 失敗,觸發(fā)異常。而 stack_recursive 可以正確加載,并運行一段時間,然后導(dǎo)致棧溢出,并觸發(fā)異常。
要正確處理棧溢出采用以下辦法:
(1)修正我們的程序,不要造成無窮遞歸或太深的遞歸。我們可以把某些遞歸代碼非遞歸化,例如那個經(jīng)典的 qsort ,最好就用非遞歸的算法來實現(xiàn),就比較皮實一點。
(2)修正我們的程序,不要定義過大的局部變量,特別是在定義大結(jié)構(gòu)、大數(shù)組時要格外小心。有時我們可能會用 _alloca() 這樣的特殊函數(shù)直接在棧上分配空間,更要多加注意。
(3)利用編譯器的特性,將進(jìn)程允許的棧大小設(shè)置得大一些。例如可以采用 MSC 中的 /STACK 參數(shù)開關(guān)。
(4)對于那些還可能導(dǎo)致棧溢出的代碼,采用 Microsoft 的結(jié)構(gòu)化異常處理或標(biāo)準(zhǔn)的 C++ 異常處理機(jī)制,結(jié)合 _resetstkoflw() 進(jìn)行處理。當(dāng)然了,要是不嫌麻煩,我們也可以自己探測所用棧的大小,動態(tài)地檢測是否可能導(dǎo)致棧溢出,以避免可能的異常。
CSS里面的overflow的用法?
根據(jù)CSS的盒模型概念,頁面中的每個元素,都是一個矩形的盒子。這些盒子的大小、位置和行為都可以用CSS來控制。
該盒子的高度將會根據(jù)它容納內(nèi)容的需要而增長,這就是該添加CSS的overflow屬性的時候了