-
其實(shí)
CSS
一開始設(shè)計(jì)float
屬性的主要目的是為了實(shí)現(xiàn)文本繞排圖片的效果趋艘。 然而這個(gè)屬性居然成了創(chuàng)建多欄布局的最簡(jiǎn)單方式瘟滨。 先來看看float
實(shí)現(xiàn)文本繞排的效果。
img {
float: left;width: 180px; height: 120px; margin: 0 12px; } p { width: 480px; margin: 12px; padding: 12px; border: 1px solid #ccc; }
當(dāng)使用了
float
屬性之后, 浮動(dòng)的圖片會(huì)從文本流中被移除棵磷,如果有文本跟在它后面,文本會(huì)自動(dòng)繞開圖片晋涣。
上面我們提到了仪媒,設(shè)置了 float
之后,圖片就會(huì)脫離文檔流谢鹊,所以它的父元素也就看不到它了算吩,這樣就會(huì)出現(xiàn)一個(gè)問題,比如當(dāng)父元素包裹不住圖片的時(shí)候佃扼,父元素的緊鄰兄弟節(jié)點(diǎn)會(huì)自動(dòng)讓出左邊的空間偎巢,比如下面這樣。
<section>
<img alt="picture" src="15.jpg" />
<p>
Section
</p>
</section>
<footer>
This is footer</footer>
</footer>
有沒有什么辦法能解決上述這種尷尬的情景呢兼耀? 問題的答案是有的压昼,而且有三種,下面來一一介紹瘤运。
-
為父元素添加
overflow:hidden
section{
overflow: hidden;
}
demo03.png -
同時(shí)浮動(dòng)父元素窍霞。 浮動(dòng)父元素之后,它就會(huì)將它的子元素全部包含在自己內(nèi)部(無論是浮動(dòng)元素還是不浮動(dòng)的元素)拯坟, 所以我們還需要將父元素的寬度設(shè)置為與瀏覽器同寬但金,不然父元素會(huì)不斷換行以包裝不同的子元素。 還有郁季,要在
footer
中清除左浮動(dòng)冷溃,不然footer
會(huì)極力擠到section
的旁邊去。
img {
float: left;width: 180px; height: 120px; } section { float: left; width: 100%; } footer { clear: left; }
-
添加非浮動(dòng)的清除元素梦裂。
section:after{ content: ""; display: block; height:0; visibility: hidden; clear: both; }
- 如果把
display
的值設(shè)置為none
秃诵, 該元素以及包含在其中的元素都不會(huì)在頁面中顯示,它們占用的空間也會(huì)被回收塞琼,就好像這些標(biāo)記根本不存在一樣菠净。 于此相對(duì)應(yīng)的屬性是visibility
, 常用的兩個(gè)值是visible
和hidden
。 把visibility
的值設(shè)置為hidden
后彪杉,元素會(huì)不可見毅往,但是它仍會(huì)占有其原本的空間,不會(huì)被回收派近。
-
下面我們來講講背景圖片和背景漸變的一些知識(shí)攀唯。 假如有一個(gè)
div
, 為其設(shè)置很大的背景圖片渴丸。div { width: 480px; height: 320px; background-image: url('15.jpg'); }
顯然這不是我要顯示圖片的全部侯嘀,背景圖片從左上角開始顯示另凌,超出容器的那部分不顯示,可以手動(dòng)指定要顯示圖片從何處開始戒幔, 需要借助
background-position
屬性吠谢,接收兩個(gè)值,用于指定水平和垂直方向上的起始原點(diǎn)诗茎, 可以使用的值為 top, right, bottom, right, center
工坊。下面我將兩個(gè)值都設(shè)置為 center
, 因?yàn)槲蚁肟磮D片的中間部分敢订。
background-position: center;
這樣看上去好像比默認(rèn)的情況好多了王污。 還可以設(shè)置背景圖片的大小,這需要用到
background-size
屬性楚午。這個(gè)屬性的取值如下
- 50% : 縮放圖片昭齐,使其填充背景區(qū)的一半。
- 100px 50px : 把圖片調(diào)整到 100 像素寬矾柜, 50 像素高司浪。
- cover : 拉大圖片,使其完全填滿背景區(qū)把沼,保持寬高比。
- contain : 縮放圖片吁伺, 使其恰好適合背景區(qū)饮睬,保持寬高比。
下面是將 background-size
設(shè)置成 cover
的效果篮奄。
漸變分為兩種捆愁,一種是線性漸變,一種是放射性漸變窟却,從線性漸變開始說起昼丑。
div {
width: 480px;
height: 320px;
background: linear-gradient(red,green);
}
可見,線性漸變默認(rèn)是從上到下的夸赫,當(dāng)然我們可以根據(jù)我們的需要改變這種默認(rèn)方式菩帝,比如我們讓其從左到右漸變。
background: linear-gradient(to right,red,green);
甚至可以從左上角到右下角進(jìn)行漸變茬腿。
background: linear-gradient(135deg, red, green);
不僅可以使用上述方式創(chuàng)建漸變呼奢,還有更靈活的方式,那就是設(shè)置漸變點(diǎn)切平,下面來看看漸變點(diǎn)的設(shè)置規(guī)則握础。
background: linear-gradient(red, white 50%, green);
在 50% 有一個(gè)漸變點(diǎn),圖形從 0%-50%悴品,由紅色逐漸向白色轉(zhuǎn)變禀综, 50%-100% 由白色到綠色轉(zhuǎn)變简烘。
background: linear-gradient(red 20%, white 50%, green 80%);
在 20% 和 80% 處有漸變點(diǎn),意思是在 0% - 20% 一直保持紅色定枷,在 20% - 50% 從紅色到白色漸變孤澎, 在50% - 80%,從白色到綠色漸變依鸥,在 80% - 100% 一致保持綠色亥至。
background: linear-gradient(red,white 20%, green 50%, blue 80%, red);
在 20%,50%,80% 處有漸變點(diǎn),在 0- 20% 贱迟,從紅色到白色漸變姐扮, 在 20% - 50%, 從白色到綠色漸變衣吠, 在 50%- 80% 從綠色到藍(lán)色漸變茶敏,在 80% - 100%, 從藍(lán)色到紅色漸變缚俏。
由于漸變是 CSS3
新屬性惊搏,所以別忘了對(duì)瀏覽器進(jìn)行適配,比如說下面這樣忧换。
background: -webkit-linear-gradient(red, white 20%, green 50%, blue 80%, red);
background: -o-linear-gradient(red, white 20%, green 50%, blue 80%, red);
background: linear-gradient(red, white 20%, green 50%, blue 80%, red);
講完了線性漸變恬惯,下面來看看放射性漸變。
background: radial-gradient(white, red, green);
可見亚茬,圖形為按照 白紅綠 填充滿酪耳。當(dāng)然,我們還可以指定漸變形狀刹缝,比如設(shè)置為圓形碗暗。
background: radial-gradient(circle, white, red, green);
還可以設(shè)置放射中心的位置,比如下面這樣梢夯。
background: -webkit-radial-gradient(100px 100px, circle, white, red, green);
demo15.png
-
關(guān)于設(shè)置文本的
line-height
屬性言疗,我們可以利用其實(shí)現(xiàn)文本垂直居中的效果。div { height: 32px; background: rgba(123,23,89,.5); } p { line-height: 32px; color: white; }
其中颂砸, div
是 p
的父節(jié)點(diǎn)噪奄,我們通過設(shè)置 line-height
和父元素的高度相等,就可以讓文本居中人乓,這是為什么呢梗醇? 假設(shè)文本的大小為 16px
,而這個(gè)時(shí)候的行高為 32px
, 那么瀏覽器就會(huì)在文本的上下添加 (32-16)/2 px
的空白撒蟀。
很多情況下叙谨,我們會(huì)使用第三方字體, Google Web Foots 是個(gè)不錯(cuò)的網(wǎng)站保屯,我們只需要選中我們要使用的字體手负,它就會(huì)提供一個(gè) link
涤垫, 供我們使用字體,比如像下面這樣竟终。
在涉及文字排版的時(shí)候蝠猬,最好借助網(wǎng)格線,比如下面這個(gè)圖片
利用這個(gè)圖片我們將文字與基線對(duì)齊统捶,然后再將圖片去除榆芦,這樣我們的排版就會(huì)看起來很美觀,比如下面這樣喘鸟。
本來還想介紹更多的內(nèi)容匆绣,限于篇幅,只能在下一篇文章中再介紹了什黑。