html+css大雜燴

1、使用html+css佈局時應注意使用語義化標籤,做到去掉css樣式後其頁面仍有良好的結構和可讀性

(1)儘可能少的使用無語義的div和span

(2)能用p的地方就不要用div

(3)不使用b、font、u等純樣式標籤

2、新建html文件時聲明DTD以避免使用低版本的IE瀏覽器時觸發怪異模式導致一些css失效

3、組織css時可以使用base.css+common.css+page.css三層結構

其中推薦使用base.css來覆蓋瀏覽器默認樣式

@charset "utf-8";
/*CSS reset*/
html{color:#000;background:#FFF;}
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td{margin:0;padding:0;}
table{border-collapse:collapse;border-spacing:0;}
fieldset,img{border:0;}
address,caption,cite,code,dfn,em,strong,th,var,optgroup{font-style:inherit;font-weight:inherit;}
del,ins{text-decoration:none;}
li{list-style:none;}
caption,th{text-align:left;}
h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}
q:before,q:after{content:'';}
abbr,acronym{border:0;font-variant:normal;}
sup{vertical-align:baseline;}
sub{vertical-align:baseline;}
legend{color:#000;}
input,button,textarea,select,optgroup,option{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;}
input,button,textarea,select{*font-size:100%;}

/*文字排版*/
.f12{font-size:12px;}
.f13{font-size:13px;}
.f14{font-size:14px;}
.f16{font-size:16px;}
.f20{font-size:20px;}
.fb{font-weight:bold}
.fn{font-weight:normal;}
.t2{text-indent:2em;}
.lh150{line-height:150%;}
.lh180{line-height:180%;}
.lh200{line-height:200%;}
.unl{text-decoration:underlline;}
.no_unl{text-decoration:none;}

/*定位*/
.tl{text-align:left;}
.tc{text-align:center;}
.tr{text-align:right;}
.bc{margin-left:0;margin-right:0;}
.fl{float:left;display:inline;}
.fr{float:right;display:inline;}
.cb{clear:both;}
.cl{clear:left;}
.cr{clear:rigth;}
.clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}
.vm{verticle-align:middle;}
.pr{position:relative;}
.pa{position:absolute;}
.abs-right{position:absolute;right:0}
.zoom{zoom:1;}
.hidden{visiility:hidden;}
.none{display:none;}

/*長度高度*/
.w10{width:10px;}
.w20{width:20px;}
.w30{width:30px;}
.w40{width:40px;}
.w50{width:50px;}
.w60{width:60px;}
.w70{width:70px;}
.w80{width:80px;}
.w90{width:90px;}
.w100{width:100px;}
.w200{width:200px;}
.w300{width:300px;}
.w400{width:400px;}
.w500{width:500px;}
.w600{width:600px;}
.w700{width:700px;}
.w800{width:800px;}
.w{width:100%}
.h50{width:50px;}
.h80{width:80px;}
.h100{width:100px;}
.h200{width:200px;}
.h{height:100%}

/*邊距*/
.m10{margin:10px;}
.m15{margin:15px;}
.m30{margin:30px;}
.mt5{margin-top:5px;}
.mt10{margin-top:10px;}
.mt15{margin-top:15px;}
.mt20{margin-top:20px;}
.mt30{margin-top:30px;}
.mt50{margin-top:50px;}
.mt100{margin-top:100px;}
.mb5{margin-bottom:5px;}
.mb10{margin-bottom:10px;}
.mb15{margin-bottom:15px;}
.mb20{margin-bottom:20px;}
.mb30{margin-bottom:30px;}
.mb50{margin-bottom:50px;}
.mb100{margin-bottom:100px;}
.ml5{margin-left:5px;}
.ml10{margin-left:10px;}
.ml15{margin-left:15px;}
.ml20{margin-left:20px;}
.ml30{margin-left:30px;}
.ml50{margin-left:50px;}
.ml100{margin-left:100px;}
.mr5{margin-right:5px;}
.mr10{margin-right:10px;}
.mr15{margin-right:15px;}
.mr20{margin-right:20px;}
.mr30{margin-right:30px;}
.mr50{margin-right:50px;}
.mr100{margin-right:100px;}
.p10{padding:10px;}
.p15{padding:15px;}
.p30{padding:30px;}
.pt5{padding-top:5px;}
.pt10{padding-top:10px;}
.pt15{padding-top:15px;}
.pt20{padding-top:20px;}
.pt30{padding-top:30px;}
.pt50{padding-top:50px;}
.pt100{padding-top:100px;}
.pb5{padding-bottom:5px;}
.pb10{padding-bottom:10px;}
.pb15{padding-bottom:15px;}
.pb20{padding-bottom:20px;}
.pb30{padding-bottom:30px;}
.pb50{padding-bottom:50px;}
.pb100{padding-bottom:100px;}
.pl5{padding-left:5px;}
.pl10{padding-left:10px;}
.pl15{padding-left:15px;}
.pl20{padding-left:20px;}
.pl30{padding-left:30px;}
.pl50{padding-left:50px;}
.pl100{padding-left:100px;}
.pr5{padding-right:5px;}
.pr10{padding-right:10px;}
.pr15{padding-right:15px;}
.pr20{padding-right:20px;}
.pr30{padding-right:30px;}
.pr50{padding-right:50px;}
.pr100{padding-right:100px;}


4、掛base.css中的fr和fl類來解決IE6中的雙外邊距bug,在IE6中設置了元素浮動後又設置margin-left/right會產生margin值

5、margin-left/right相鄰時不會產生重合現象,但是margin-top/bottom相鄰就會產生重合

6、超鏈接訪問後hover樣式不出現的原因可能是a:hover寫在了a:visited前面,兩者調換順序就可解決

7、position定位relative、absolute和float的區別:

(1)三者都會脫離z-index=0的文檔流

(2)relative保留其在文檔流中的佔位,absolute會完全脫離文檔流不會保留佔位,float仍在文檔流中排列會影響其周邊的元素

(3)absolute和float會隱式改變元素的display屬性爲inline-block,除了設置其爲none之外設置其他值都會失效

8、z-index爲負值的元素會被body元素擋住,此時dom操作該元素會失效

9、負邊距會產生元素重疊

(1)同向margin的重疊:這時候重疊之後的margin值由發生重疊兩片的最大值決定;如果其中一個出現負值,則由最大的正邊距減去絕對值最大的負邊距,如果沒有最大正邊距,則由0減去絕對值最大的負邊距

解決同向重疊的方法:
a、在最外層的div中加入overflow:hidden;zoom:1
b、在最外層加入padding:1px;屬性
c、在最外層加入:border:1px solid #cacbcc;
(2).異向重疊問題:這時候重疊之後的margin值由發生重疊兩圖片的最大值的決定的。
解決異向重疊問題:float:left(只能解決IE6瀏覽器中的異向重疊問題,可以解決IE8以上、chorme、firefox、opera下的同向重疊問題)

10、窗口類型元素會優先顯示在頁面頂層,非窗口元素的顯示順序才判斷z-index的大小

11、在IE6中select元素會以窗口形式顯示



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章