CSS 自學(xué)之路(二)

  • 其實(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;
      }
    

demo01.png

當(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>
demo02.png

有沒有什么辦法能解決上述這種尷尬的情景呢兼耀? 問題的答案是有的压昼,而且有三種,下面來一一介紹瘤运。

  1. 為父元素添加 overflow:hidden
    section{
    overflow: hidden;
    }

    demo03.png

  2. 同時(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;
     }
    
  3. 添加非浮動(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è)值是 visiblehidden。 把 visibility 的值設(shè)置為 hidden 后彪杉,元素會(huì)不可見毅往,但是它仍會(huì)占有其原本的空間,不會(huì)被回收派近。

  • 下面我們來講講背景圖片和背景漸變的一些知識(shí)攀唯。 假如有一個(gè) div , 為其設(shè)置很大的背景圖片渴丸。

    div {
      width: 480px;
      height: 320px;
    
      background-image: url('15.jpg');
    }
    

demo04.png

顯然這不是我要顯示圖片的全部侯嘀,背景圖片從左上角開始顯示另凌,超出容器的那部分不顯示,可以手動(dòng)指定要顯示圖片從何處開始戒幔, 需要借助 background-position 屬性吠谢,接收兩個(gè)值,用于指定水平和垂直方向上的起始原點(diǎn)诗茎, 可以使用的值為 top, right, bottom, right, center工坊。下面我將兩個(gè)值都設(shè)置為 center, 因?yàn)槲蚁肟磮D片的中間部分敢订。

    background-position: center;

demo05.png

這樣看上去好像比默認(rèn)的情況好多了王污。 還可以設(shè)置背景圖片的大小,這需要用到 background-size 屬性楚午。這個(gè)屬性的取值如下

  1. 50% : 縮放圖片昭齐,使其填充背景區(qū)的一半。
  2. 100px 50px : 把圖片調(diào)整到 100 像素寬矾柜, 50 像素高司浪。
  3. cover : 拉大圖片,使其完全填滿背景區(qū)把沼,保持寬高比。
  4. contain : 縮放圖片吁伺, 使其恰好適合背景區(qū)饮睬,保持寬高比。

下面是將 background-size 設(shè)置成 cover 的效果篮奄。

demo06.png

漸變分為兩種捆愁,一種是線性漸變,一種是放射性漸變窟却,從線性漸變開始說起昼丑。
div {
width: 480px;
height: 320px;

    background: linear-gradient(red,green);
  }
demo07.png

可見,線性漸變默認(rèn)是從上到下的夸赫,當(dāng)然我們可以根據(jù)我們的需要改變這種默認(rèn)方式菩帝,比如我們讓其從左到右漸變。
background: linear-gradient(to right,red,green);


demo08.png

甚至可以從左上角到右下角進(jìn)行漸變茬腿。
background: linear-gradient(135deg, red, green);


demo09.png

不僅可以使用上述方式創(chuàng)建漸變呼奢,還有更靈活的方式,那就是設(shè)置漸變點(diǎn)切平,下面來看看漸變點(diǎn)的設(shè)置規(guī)則握础。
background: linear-gradient(red, white 50%, green);
demo10.png

在 50% 有一個(gè)漸變點(diǎn),圖形從 0%-50%悴品,由紅色逐漸向白色轉(zhuǎn)變禀综, 50%-100% 由白色到綠色轉(zhuǎn)變简烘。

background: linear-gradient(red 20%, white 50%, green 80%);


demo11.png

在 20% 和 80% 處有漸變點(diǎn),意思是在 0% - 20% 一直保持紅色定枷,在 20% - 50% 從紅色到白色漸變孤澎, 在50% - 80%,從白色到綠色漸變依鸥,在 80% - 100% 一致保持綠色亥至。
background: linear-gradient(red,white 20%, green 50%, blue 80%, red);
demo12.png

在 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);
demo13.png

可見亚茬,圖形為按照 白紅綠 填充滿酪耳。當(dāng)然,我們還可以指定漸變形狀刹缝,比如設(shè)置為圓形碗暗。

  background: radial-gradient(circle, white, red, green);
demo14.png

還可以設(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;
    }
    

其中颂砸, divp 的父節(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涤垫, 供我們使用字體,比如像下面這樣竟终。

demo16.png

在涉及文字排版的時(shí)候蝠猬,最好借助網(wǎng)格線,比如下面這個(gè)圖片


grid_18px.png

利用這個(gè)圖片我們將文字與基線對(duì)齊统捶,然后再將圖片去除榆芦,這樣我們的排版就會(huì)看起來很美觀,比如下面這樣喘鸟。


demo17.png

本來還想介紹更多的內(nèi)容匆绣,限于篇幅,只能在下一篇文章中再介紹了什黑。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末崎淳,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子愕把,更是在濱河造成了極大的恐慌拣凹,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件恨豁,死亡現(xiàn)場(chǎng)離奇詭異嚣镜,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)橘蜜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門菊匿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人扮匠,你說我怎么就攤上這事》采” “怎么了棒搜?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長活箕。 經(jīng)常有香客問我力麸,道長,這世上最難降的妖魔是什么育韩? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任克蚂,我火速辦了婚禮,結(jié)果婚禮上筋讨,老公的妹妹穿的比我還像新娘埃叭。我一直安慰自己,他們只是感情好悉罕,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布赤屋。 她就那樣靜靜地躺著立镶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪类早。 梳的紋絲不亂的頭發(fā)上媚媒,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音涩僻,去河邊找鬼缭召。 笑死,一個(gè)胖子當(dāng)著我的面吹牛逆日,可吹牛的內(nèi)容都是我干的嵌巷。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼屏富,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼晴竞!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起狠半,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤噩死,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后神年,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體已维,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年已日,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了垛耳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡飘千,死狀恐怖堂鲜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情护奈,我是刑警寧澤缔莲,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站霉旗,受9級(jí)特大地震影響痴奏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜厌秒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一读拆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鸵闪,春花似錦檐晕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽屠列。三九已至,卻和暖如春伞矩,著一層夾襖步出監(jiān)牢的瞬間笛洛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國打工乃坤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留苛让,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓湿诊,卻偏偏與公主長得像狱杰,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子厅须,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類選擇器 屬性選擇器 繼承屬性: color仿畸,font,text-align朗和,li...
    wzhiq896閱讀 1,756評(píng)論 0 2
  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類選擇器 屬性選擇器 繼承屬性: color错沽,font,text-align眶拉,li...
    love2013閱讀 2,315評(píng)論 0 11
  • 1.CSS簡(jiǎn)介 Cascading Style Sheet 層疊樣式表 主要用來定義頁面中的表現(xiàn)千埃,HTML 描述頁...
    hyt222閱讀 827評(píng)論 0 0
  • 小馬宋的《朋友圈的尖子生》中介紹了脫不花如何從17歲孤身闖京城放可,縱劍商海,成為得到APP聯(lián)合創(chuàng)始人兼CEO的故事:...
    蘭才人閱讀 706評(píng)論 0 2
  • ? 最近還好嗎朝刊?不談感情我們就都快活耀里。 每周一次“姐妹趴”,年華正好的女孩們逐漸迎來自己的全盛時(shí)代拾氓,可是終歸少了什...
    陳小團(tuán)閱讀 727評(píng)論 6 7