任務(wù)9-2 CSS常見技巧

1.CSS Sprite(雪碧圖|精靈圖)指什么? 有什么作用

CSS雪碧圖就是把你要使用的一些小圖標或背景圖片合并成一張圖片,然后使用CSS 的background-image、background-repeat和background-position等屬性渲染,精確定位出你想要使用的圖片部分。這樣做可以減少加載網(wǎng)頁圖片時對服務(wù)器的請求次數(shù),提高頁面的加載速度,減少鼠標滑過的一些bug。
雪碧圖在線合成網(wǎng)址工具-圖片合并
工具-圖片在線壓縮
demo:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Sprite</title>
        <style>
             .icon{
                width: 40px;
                height: 40px;
                 background: url(toolbars.png) 0 0 no-repeat;
             }
             .s1 {
                background-position: 0px 0px ;
             }
             .s2{
                background-position: 0px -40px
             }
        </style>
    </head>
    <body>
        <div class="icon s1"></div>
        <div class="icon s2"></div>
    </body>
</html>

Sprite

2.img標簽和CSS背景使用圖片在使用場景上有何區(qū)別

  • img屬于HTML標簽,適用于圖片和內(nèi)容相關(guān)的,會發(fā)生變化的場景,例如用戶圖像,驗證碼等。
  • background-img屬于CSS屬性,適用于頁面上內(nèi)容固定不變的場景,例如圖標。
    以京東主頁樣式舉例:
京東主頁

3.title和 alt屬性分別有什么作用

  • title屬性是提供非本質(zhì)的額外信息,比如在圖像可見時對圖像的描述(鼠標放在圖片時即會顯示)。它可以用在除了base,basefont,head,html,meta,param,script和title之外的所有標簽。
  • alt屬性是為了給那些不能看到你文檔中圖像的瀏覽者提供文字說明,它只能用在img、area和input元素中,是用來替代圖像而不是提供額外說明文字。
    demo:
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Sprite</title>
    </head>
    <body>
        ![我是要成為海賊王的男人](http://upload-images.jianshu.io/upload_images/2419272-349cdf209a3bc8d5.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
        ![這是路飛](http://imgtn.bdimg.com/it/u=3987640784,323146945&fm=206&gp=0.jpg)
    </body>
</html>

title和alt區(qū)別

4.background: url(abc.png) 0 0 no-repeat;這句話是什么意思?

在解釋這句話之前先了解一下background的全部屬性:

描述 CSS
background-color 規(guī)定要使用的背景顏色。 1
background-position 規(guī)定背景圖像的位置。 1
background-size 規(guī)定背景圖片的尺寸。 3
background-repeat 規(guī)定如何重復(fù)背景圖像。 1
background-origin 規(guī)定背景圖片的定位區(qū)域。 3
background-clip 規(guī)定背景的繪制區(qū)域。 3
background-attachment 規(guī)定背景圖像是否固定或者隨著頁面的其余部分滾動。 1
background-image 規(guī)定要使用的背景圖像。 1

所以,background: url(abc.png) 0 0 no-repeat是一個background屬性的簡寫模式,它的意思使用一個abc.png的圖片作為背景圖片,圖片位置坐標為0 0,即不發(fā)生偏移, 圖片不重復(fù)。
demo:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Sprite</title>
        <style type="text/css">
            .box {
                width: 400px;
                height: 250px;
                border: 3px solid gold;
                background: url(http://abc.png) 0 0 no-repeat;
            }
        </style>
    </head>
    <body>
        <div class="box"></div>
    </body>
</html>

效果

這里還要說一下關(guān)于背景圖片定位(background-position)取值的問題:

  1. (0,0)坐標原點位置,即外層塊元素的左上角
  2. background-position位置設(shè)定是指圖片與坐標原點的偏移量
  3. 原點是不會動的,移動的是圖片,X坐標值為正則圖片左上角向右平移,為負則圖片左上角向左平移,Y坐標值為正則圖片左上角向下平移,為負則圖片左上角向上平移

4.坐標除了用數(shù)字表示,還可以用百分比表示,

  • X軸:(容器的寬度-圖片的寬度)乘以(X方向的百分數(shù))
  • Y軸:(容器的高度-圖片的高度)乘以(Y方向的百分數(shù))

另外還可以使用關(guān)鍵字top、left、right、bottom、center來表示圖片位置。

對照下圖可以知道各個值定位的位置。


5.background-size有什么作用? 兼容性如何? 常用的值是?

background-size 屬性用來規(guī)定背景圖像的尺寸。
兼容性:


兼容性

常用的值:

描述
length 設(shè)置背景圖像的高度和寬度。第一個值設(shè)置寬度,第二個值設(shè)置高度。如果只設(shè)置一個值,則第二個值會被設(shè)置為“atuo”
percentage(%) 以父元素的百分比來設(shè)置背景圖像的寬度和高度。第一個值設(shè)置寬度,第二個值設(shè)置高度。如果只設(shè)置一個值,則第二個會被設(shè)置為“auto”。
cover 把背景圖像擴展至足夠大,以使背景圖像完全覆蓋背景區(qū)域。背景圖像的某些部分也許無法顯示在背景定位區(qū)域中。
contain 把圖像擴展至最大尺寸,以使其寬度和高度完全適應(yīng)內(nèi)容區(qū)域。

demo:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Sprite</title>
        <style type="text/css">
            div {
                width: 400px;
                height: 400px;
                margin: 20px;
                border: 3px solid gold;
                background: url(http://img5.imgtn.bdimg.com/it/u=3987640784,323146945&fm=206&gp=0.jpg) 0 0 no-repeat;
            }
            .box1{
                background-size: 300px 200px;
            }
            .box2{
                background-size: 50% 50%;
            }
            .box3{
                background-size: cover;
            }
            .box4{
                background-size: contain;
            }
        </style>
    </head>
    <body>
        <div class="box1"></div>
        <div class="box2"></div>
        <div class="box3"></div>
        <div class="box4"></div>
    </body>
</html>

auto

auto:此值為默認值,保持背景圖片的原始高度和寬度

length

length:此值設(shè)置具體的值,可以改變背景圖片的大小

percentage

percentage:此值為百分值,可以是0%?100%之間任何值,所設(shè)置百分值將使用背景圖片大小根據(jù)所在父元素的寬度的百分比來計算

cover

cover:此值是將圖片放大,以適合鋪滿整個容器,當圖片小于容器時,又無法使用background-repeat來實現(xiàn)時,我們就可以采用cover;將背景圖片放大到適合容器的大小,但這種方法會使用背景圖片失真

contain

contain:此值是將背景圖片縮小或放大,能夠使容器完全的顯示圖片,這個主要運用在,當背景圖片大于元素容器時,而又需要將背景圖片全部顯示出來,此時我們就可以使用contain將圖片縮小到適合容器大小為止,這種方法同樣會使用圖片失真

6.如何讓一個div水平居中?如何讓圖片水平居中

div是塊級元素,只要將塊級元素的margin-left和margin-right的值為atuo即可。

demo:

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title>demo</title>
        <style type="text/css">
                .box1 {
                width: 400px;
                height: 400px;
                border: 3px solid gold;
                margin-left: auto;
                margin-right: auto;
        </style>
    </head>

    <body>
        <div class="box1">
            ![](http://upload-images.jianshu.io/upload_images/2419272-349cdf209a3bc8d5.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
        </div>
    </body>

</html>
div水平居中

圖片屬于內(nèi)聯(lián)元素,想讓內(nèi)聯(lián)元素水平居中在它的父元素的樣式里設(shè)置text:align=center即可。
demo:

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title>demo</title>
        <style type="text/css">
                .box1 {
                width: 400px;
                height: 400px;
                border: 3px solid gold;
                margin-left: auto;
                margin-right: auto;
                text-align: center;
        </style>
    </head>

    <body>
        <div class="box1">
            ![](http://upload-images.jianshu.io/upload_images/2419272-349cdf209a3bc8d5.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
        </div>
    </body>

</html>
圖片水平居中

7.如何設(shè)置元素透明? 兼容性?

可以使用opacity屬性來設(shè)置元素的透明度,value從 0.0 (完全透明)到 1.0(完全不透明)。
demo:

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title>demo</title>
        <style type="text/css">
                .box1 {
                width: 400px;
                height: 400px;
                border: 3px solid gold;
                margin-left: auto;
                margin-right: auto;
                text-align: center;
                opacity: 0.3;
        </style>
    </head>

    <body>
        <div class="box1">
            ![](http://upload-images.jianshu.io/upload_images/2419272-349cdf209a3bc8d5.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
        </div>
    </body>

</html>
元素透明

從圖例中看出,只要對div設(shè)置了opacity屬性,該div里面所有的內(nèi)容都會受到影響。

兼容性:

opacity兼容性

8.opacity和rgba都能設(shè)置透明,有什么區(qū)別?

  • opacity會對元素內(nèi)所有的內(nèi)容設(shè)置透明度,而rgba只能對元素的顏色或者背景色設(shè)置透明度。
  • opacity的屬性是能繼承給后代的,而rgba不能。
    demo:
<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title>demo</title>
        <style type="text/css">
                div{
                width: 100px;
                height: 100px;
                border: 3px solid gold;
                margin-left: auto;
                margin-right: auto;
                text-align: center;
                   }
                   .box1{
                   background-color: rgb(0,255,0);
                    opacity: 0.3;
                   }
                   .box2{
                   background-color: rgba(0,255,0,0.3);
                   }
                   span{
                    color:red;
                   }
        </style>
    </head>

    <body>
        <div class="box1">
            <span>
                饑人谷前端學習
            </span>
        </div>
        <div class="box2">
            <span>
                饑人谷前端學習
            </span>
        </div>
    </body>

</html>
透明度對比

本文版權(quán)歸本人和饑人谷所有,轉(zhuǎn)載請注明來源。

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

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

  • 一、CSS Sprite(雪碧圖|精靈圖)指什么? 有什么作用 1、css sprite是一種圖片處理方法,就是將...
    鴻鵠飛天閱讀 417評論 0 0
  • 1 . CSS Sprite(雪碧圖|精靈圖)指什么, 及作用 就是把頁面上需要用到的多個小圖標全都合并在一張大圖...
    osborne閱讀 182評論 0 0
  • 1. CSS Sprite(雪碧圖|精靈圖)指什么? 有什么作用? CSS Sprite是一種網(wǎng)頁圖片的處理技術(shù),...
    mint9602閱讀 226評論 0 0
  • 1.CSS Sprite(雪碧圖|精靈圖)指什么? 有什么作用? 把背景圖合并成一張大圖,通過background...
    饑人谷_徐小坤閱讀 296評論 0 0
  • 感恩今天在收拾房間的時候,偶然發(fā)現(xiàn)女兒在花盆上寫下的一行字:“愛與感恩,期待你早日開花,你不開也沒關(guān)系”。被女兒善...
    武丹yoyo閱讀 222評論 0 1