web前端之Html和Css應用中的細節問題


1、居中的n種方法:

①、margin: 0 20%;

——設置margin上下外邊距的值設置為0,左右外邊距設置成相同的百分比,既可將盒子居中。

②、margin: 0 auto;

width: 1000px;

——設置margin上下外邊距的值設置為0,左右外邊距都設置成auto,然后再設置盒子的寬度,既可將盒子居中。

③、#outer_div

{

padding: 30px;

text-align: center;

}

#inner_div

{display: inline-block; /*行內塊元素*/

padding: 50px;

background-color: red;}

——使用兩個盒子的嵌套實現,這里只需要將父盒子中的text-align的值設置為center,然后再將子盒子display的值設置成inline-block(行內塊元素)便可實現居中。

2、關于margin屬性之外邊距合并問題:

①、在常規文檔流中,2個或以上的塊級盒模型相鄰的垂直margin會被合并。最終的margin值計算方法如下:

a、全部都為正值,取最大者;

b、不全是正值,則都取絕對值,然后用正值減去最大值;

c、沒有正值,則都取絕對值,然后用0減去最大值。

②、相鄰的盒模型中,如果其中的一個是浮動的(floated),垂直margin不會被合并,甚至一個浮動的盒模型和它的子元素之間也是這樣。

③、設置了overflow屬性的元素和它的子元素之間的margin不會被合并(overflow取值為visible除外)。

④、設置了絕對定位(position:absolute)的盒模型,垂直margin不會被合并,甚至和他們的子元素之間也是一樣。

⑤、設置了display:inline-block的元素,垂直margin不會被合并,甚至和他們的子元素之間也是一樣。

⑥、如果一個盒模型的上下margin相鄰,這時它的margin可能合并覆蓋(collapse through)它。在這種情況下,元素的位置(position)取決于它的相鄰元素的margin是否被合并。

a、如果元素的margin和它的父元素的margin-top折疊在一起,盒模型border-top的邊界定義和它的父元素相同。

b、另外,任意元素的父元素不參與margin的合并,或者說只有父元素的margin-bottom是參與計算的。如果元素的border-top非零,那么元素的border-top邊界位置和原來一樣。

一個應用了清除操作的元素的margin-top絕不會和它的塊級父元素的margin-bottom合并。

注意,那些已經被合并覆蓋的元素的位置對其他已經被合并的元素的位置沒有任何影響;只有在對這些元素的子元素定位時,border-top邊界位置才是必需的。

⑦、根元素的垂直margin不會被合并。

解決方案:

l 在父層div加上:overflow:hidden;

l 把margin-top外邊距改成padding-top內邊距;

l 父元素產生邊距重疊的邊有不為 0 的 padding 或寬度不為 0 且 style 不為 none 的 border

父層div加: padding-top: 1px;

讓父元素生成一個 block formating context,以下屬性可以實現

l * float: left/right

l * position: absolute

l * display: inline-block/table-cell(或其他 table 類型)

l * overflow: hidden/auto

l 父層div加:position: absolute;

3、float屬性的消除:

①、清除浮動方法一:(clear:both;)

ul{list-style:none;}

ul li{float:left; margin:5px;}

.clear{clear:both;overflow:hidden;}

②、清除浮動方法二:(overflow:auto)

ul

{

list-style:none;

overflow:auto;

_zoom:1;

/*zoom是為了兼容ie6做的,觸發ie6下的haslayout屬性*/

}

ul li

{

float:left;

margin:5px;

}

③、清除浮動方法三:(:after 偽類元素)

#after ul:after

{

content: ".";

display: block;

height: 0;

line-height: 0;

clear: both;

visibility: hidden;

}

④、采用display:table將對象變成table形式

⑤、采用div標簽,以及css的clear屬性

⑥、采用br標簽,以及css的clear屬性

⑦、采用br標簽,以及其自身HTML的clear屬性

4、瀏覽器的兼容性:

①、瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補丁和內補丁不同

問題癥狀:隨便寫幾個標簽,不加樣式控制的情況下,各自的margin 和padding差異較大。

碰到頻率:100%

解決方案:CSS里 *{margin:0;padding:0;}

備注:這個是最常見的也是最易解決的一個瀏覽器兼容性問題,幾乎所有的CSS文件開頭都會用通配符*來設置各個標簽的內外補丁是0。

②、瀏覽器兼容問題二:塊屬性標簽float后,又有橫行的margin情況下,在IE6顯示margin比設置的大

問題癥狀:常見癥狀是IE6中后面的一塊被頂到下一行

碰到頻率:90%(稍微復雜點的頁面都會碰到,float布局最常見的瀏覽器兼容問題)

解決方案:在float的標簽樣式控制中加入 display:inline;將其轉化為行內屬性

備注:我們最常用的就是div+CSS布局了,而div就是一個典型的塊屬性標簽,橫向布局的時候我們通常都是用div float實現的,橫向的間距設置如果用margin實現,這就是一個必然會碰到的兼容性問題。

③、瀏覽器兼容問題三:設置較小高度標簽(一般小于10px),在IE6,IE7,遨游中高度超出自己設置高度

問題癥狀:IE6、7和遨游里這個標簽的高度不受控制,超出自己設置的高度

碰到頻率:60%

解決方案:給超出高度的標簽設置overflow:hidden;或者設置行高line-height 小于你設置的高度。

備注:這種情況一般出現在我們設置小圓角背景的標簽里。出現這個問題的原因是IE8之前的瀏覽器都會給標簽一個最小默認的行高的高度。即使你的標簽是空的,這個標簽的高度還是會達到默認的行高。

④、瀏覽器兼容問題四:行內屬性標簽,設置display:block后采用float布局,又有橫行的margin的情況,IE6間距bug

問題癥狀:IE6里的間距比超過設置的間距

碰到幾率:20%

解決方案:在display:block;后面加入display:inline;display:table;

備注:行內屬性標簽,為了設置寬高,我們需要設置display:block;(除了input標簽比較特殊)。在用float布局并有橫向的margin后,在IE6下,他就具有了塊屬性float后的橫向margin的bug。不過因為它本身就是行內屬性標簽,所以我們再加上display:inline的話,它的高寬就不可設了。這時候我們還需要在display:inline后面加入display:talbe。

⑤、瀏覽器兼容問題五:圖片默認有間距

問題癥狀:幾個img標簽放在一起的時候,有些瀏覽器會有默認的間距,加了問題一中提到的通配符也不起作用。

碰到幾率:20%

解決方案:使用float屬性為img布局

備注:因為img標簽是行內屬性標簽,所以只要不超出容器寬度,img標簽都會排在一行里,但是部分瀏覽器的img標簽之間會有個間距。去掉這個間距使用float是正道。(使用負margin,雖然能解決,但負margin本身就是容易引起瀏覽器兼容問題的用法,所以建議不要使用)

⑥、瀏覽器兼容問題六:標簽最低高度設置min-height不兼容

問題癥狀:因為min-height本身就是一個不兼容的CSS屬性,所以設置min-height時不能很好的被各個瀏覽器兼容

碰到幾率:5%

解決方案:如果我們要設置一個標簽的最小高度200px,需要進行的設置為:

{

min-height:200px;

height:auto !important;

height:200px;

overflow:visible;

}

⑦、瀏覽器兼容問題七:透明度的兼容CSS設置

做兼容頁面的方法是:每寫一小段代碼(布局中的一行或者一塊)我們都要在不同的瀏覽器中看是否兼容,當然熟練到一定的程度就沒這么麻煩了。建議經常會碰到兼容性問題的新手使用。很多兼容性問題都是因為瀏覽器對標簽的默認屬性解析不同造成的,只要我們稍加設置都能輕松地解決這些兼容問題。如果我們熟悉標簽的默認屬性的話,就能很好的理解為什么會出現兼容問題以及怎么去解決這些兼容問題。

分類:css

標簽:css

好文要頂關注我收藏該文

落葉歸塵

關注 - 4

粉絲 - 1

+加關注

0

0

?上一篇:利用css制作橫向和縱向時間軸

?下一篇:二十五種網頁加速方法和seo優化技巧

posted on2015-12-13 11:34落葉歸塵閱讀(103) 評論(0)編輯收藏

刷新評論刷新頁面返回頂部

注冊用戶登錄后才能發表評論,請登錄注冊訪問網站首頁。

【推薦】50萬行VC++源碼: 大型組態工控、電力仿真CAD與GIS源碼庫

【免費】從零開始學編程,開發者專屬實驗平臺免費實踐!

最新IT新聞:

·摩拜單車試水賣雨衣,一件售價268元

·三星中國回應“撤銷七大支社”:創新組織管理適應市場變化

·不靠大V、不干擾用戶,快手的風光背后有何隱憂?

·樂視控股高級副總裁王永利疑從樂視離職

·神奇百貨后,自稱“鬼才少女”的王凱歆下一步就是做微商?

?更多新聞...

最新知識庫文章:

·小printf的故事:什么是真正的程序員?

·程序員的工作、學習與績效

·軟件開發為什么很難

·唱吧DevOps的落地,微服務CI/CD的范本技術解讀

·程序員,如何從平庸走向理想?

?更多知識庫文章...

導航

博客園

首頁

新隨筆

聯系

訂閱

管理

<2017年7月>

日一二三四五六

2526272829301

2345678

9101112131415

16171819202122

23242526272829

303112345

公告

昵稱:落葉歸塵

園齡:1年7個月

粉絲:1

關注:4

+加關注

搜索

常用鏈接

我的隨筆

我的評論

我的參與

最新評論

我的標簽

我的標簽

css(5)

css hack(1)

CSS3(1)

Firefox(1)

html(1)

html5(1)

ie和FF兼容解決方法(1)

javascript(1)

javascript代碼(1)

jQuery(1)

更多

隨筆分類

css(6)

html(3)

javascript(4)

jQuery(1)

隨筆檔案

2016年1月 (1)

2015年12月 (10)

2015年11月 (4)

閱讀排行榜

1. 如何在Html的CSS中去除

標簽前面小黑點,和ul、LI部分屬性方法(7175)

2. CSS元素水平居中和垂直居中的方法大全(1511)

3. IE瀏覽器和Firefox瀏覽器兼容性問題及解決辦法(1104)

4. 利用css制作橫向和縱向時間軸(482)

5. AJAX的工作原理及其優缺點(431)

Powered by:

博客園

Copyright ? 落葉歸塵

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,321評論 6 543
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,559評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,442評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,835評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,581評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,922評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,931評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,096評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,639評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,374評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,591評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,104評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,789評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,196評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,524評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,322評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,554評論 2 379

推薦閱讀更多精彩內容