CSS使用的一些小技巧/高級進(jìn)階(持續(xù)更新)

最近閑暇時間在看鑫爺?shù)?a target="_blank" rel="nofollow">《CSS世界》,內(nèi)容真的是非常精彩尝艘,很多細(xì)節(jié)分析的非常透徹,值得推薦姿染。在日常開發(fā)中實現(xiàn)某種效果有很多方式背亥,但是下面的css code我以前都很少用到,原來css還可以這么玩 ??悬赏。

實現(xiàn)hover改變成另一張圖片效果

/**css**/
img: hover {  
     content: url( laugh-tear. png);
 }

/**html code**/
< img src=" laugh. png"> 

局限性:content 屬性 改變 的 僅僅是 視覺 呈現(xiàn)狡汉, 當(dāng) 我們 以 右鍵 或 其他 形式 保存 這張 圖片 的 時候, 所 保存 的 還是 原來 src 對應(yīng) 的 圖片舷嗡。

顯示網(wǎng)站logo

< h1>logo</ h1>
 h1 {   
   content: url( logo. svg);
 }

優(yōu)點:
1轴猎,不會影響網(wǎng)站SEO。
2进萄,使用.svg矢量圖為了適應(yīng)移動 端 retina 屏幕(如果用.svg會模
糊)捻脖。
注:千萬不要自以為是地把重要的文本信息使用content 屬性生成,因為這對可訪問性和SEO都很不友好中鼠,content 屬性只能用來生成 一些 無關(guān)緊要的內(nèi)容可婶, 如裝飾性圖形或者序號之類; 同樣援雇,也不要擔(dān)心 原本重要的文字信息會被content替換矛渴,替換的僅僅是視覺層。

設(shè)置內(nèi)容無法選中、無法復(fù)制

  user-select: none

“三道 杠” 小 圖標(biāo) 示意

image.png
.icon-menu {  
     display: inline-block;  
     width: 140px; 
     height: 10px;  
     padding: 35px 0;  
     border-top: 10px solid;  
     border-bottom: 10px solid;  
     background-color: currentColor;  
     background-clip: content-box; 
}

雙層 圓點 圖形 示意

image.png
.icon-dot {  
     display: inline-block;   
      width: 100px; 
      height: 100px;   
      padding: 10px;  
      border: 10px solid;       
      border-radius: 50%;   
      background-color: currentColor;   
      background-clip: content-box; 
}

去掉最右邊的margin-right:20

image.png
  /**方案一:使用css3 nth-of-type屬性(不考慮兼容IE8**/
li: nth-of-type(3n) { 
  margin-right: 0;
 }
  /**方案二:通過給父容器添加margin屬性具温, 增加容器的可用寬度來實現(xiàn)**/
ul {  
     margin-right: -20px; 
}
 ul > li {  
     float: left;  
     width: 100px;   
     margin-right: 20px;
 }

margin:auto的妙用

水平垂直居中

image.png
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>demo</title>
    <style>
        .father {
            position: relative;
            width: 300px;
            height: 150px;
            border: red solid 1px;
        }
        .son {
            position: absolute;  /**key code here**/
            background-color: orange;
            width: 100px;
            height: 100px;
            top: 0;
            right: 0;
            left: 0;
            bottom: 0;
            margin: auto;  /**key code here**/
        }
    </style>
</head>
<body>
    <div class="father">
        <div class="son"></div>
    </div>
</body>
</html>

左/右對齊效果蚕涤。

image.png
...
        .father {
            width: 300px;
            height: 200px;
            border: red solid 1px;
        }
        .son {
            width: 100px;
            height: 100px;
            background-color: orange;
            margin-right: 50px; /**左對齊margin-right、margin-left值交換**/
            margin-left: auto;  /**key code here**/
        }
...

水平居中

image.png
...
        .father {
            width: 300px;
            height: 200px;
            border: red solid 1px;
        }
        .son {
            width: 100px;
            height: 100px;
            background-color: orange;
            margin-right: auto; /**key code here**/
            margin-left: auto;  /**key code here**/
        }
...

垂直居中

image.png
...
        .father {
            width: 300px;
            height: 200px;
            writing-mode: vertical-lr;  /**key code here**/
            border: red solid 1px;
        }
        .son {
            width: 100px;
            height: 100px;
            background-color: orange;
            margin: auto;  /**key code here**/
        }
...

實現(xiàn)最高渲染性能的去除下邊框css

div {   
    border: 1px solid;   
    border-bottom: 0 none;  /**key code here**/
 }

優(yōu)雅的增加icon按鈕點擊區(qū)域

點擊 區(qū)域 大小 從 16 × 16 一下子 提升 到 38 × 38铣猩,


image.png
.icon- clear {  
     width: 16px;   
      height: 16px;   
      border: 11px solid transparent;   /**key code here**/
}

最高性能等邊三角圖形繪制

image.png
 div {
      width: 0;
      border: 10px solid;
      border-color: #f30 transparent transparent;
   }

最高性能等腰三角圖形繪制

image.png
       div {
            width: 0;
            border-width: 50px 34px;
            border-style: solid;
            border-color: #f30 transparent transparent;
        }

又或者是這種三角形(對話框氣泡下的三角形)

image.png
        div {
            width: 0;
            border-width: 20px 10px;
            border-style: solid;
            border-color: #f30 #f30 transparent transparent;
        }

最高性能梯形圖形繪制

image.png
        div {
            width: 10px;
            height: 10px;
            border: 10px solid;
            border-color: #f30 transparent transparent;
        }

逼真 的 3D 效果

image.png
        div {
            width: 10px;
            height: 10px;
            border: 10px solid;
            border-color: #f30 #00f #396 #0f0;
        }

被遺忘的ex單位

實現(xiàn)箭頭居中文字垂直方向(不受字體揖铜、字號影響)


image.png
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>demo</title>
    <style>

        .icon-arrow {
            display: inline-block;
            width: 20px;
            height: 1ex;
            background: url(arrow.svg) no-repeat center/20px 20px;
        }

    </style>
</head>
<body>
    <div style="font-size: 18px">
       箭頭居中對齊
        <i class="icon-arrow"></i>
    </div>

</body>
</html>

永遠(yuǎn)居中的dialog(可兼容到IE7)

image.png
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>demo</title>
    <style>

       .container {
           position: fixed;
           top:0;
           right: 0;
           left: 0;
           bottom: 0;
           background-color: rgba(0,0,0,.5);
           text-align: center;
           font-size: 0;
           white-space: nowrap;
           overflow: auto;

       }

       .container:after {
           content: '';
           display: inline-block;
           height: 100%;
           vertical-align: middle;
       }
       .content {
           width: 240px;
           height: 120px;
           padding: 20px;
       }

       .dialog {
           display: inline-block;
           vertical-align: middle;
           border-radius: 6px;
           background-color: #fff;
           font-size: 14px;
           white-space: normal;
       }

    </style>
</head>
<body>
    <div class="container">
        <div class="dialog">
            <div class="content">這dialog永遠(yuǎn)居中</div>
        </div>

    </div>

</body>
</html>

去除頁面默認(rèn)滾動條(PC端有效)

/**good code**/
 html {
            overflow: hidden;
        }

/**bad code**/
 html, body {    
            overflow: hidden;
        }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市达皿,隨后出現(xiàn)的幾起案子天吓,更是在濱河造成了極大的恐慌,老刑警劉巖峦椰,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件龄寞,死亡現(xiàn)場離奇詭異,居然都是意外死亡汤功,警方通過查閱死者的電腦和手機(jī)物邑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來滔金,“玉大人拂封,你說我怎么就攤上這事○腥洌” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵在抛,是天一觀的道長钟病。 經(jīng)常有香客問我,道長刚梭,這世上最難降的妖魔是什么肠阱? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮朴读,結(jié)果婚禮上屹徘,老公的妹妹穿的比我還像新娘。我一直安慰自己衅金,他們只是感情好噪伊,可當(dāng)我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著氮唯,像睡著了一般鉴吹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上惩琉,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天豆励,我揣著相機(jī)與錄音,去河邊找鬼瞒渠。 笑死良蒸,一個胖子當(dāng)著我的面吹牛技扼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播嫩痰,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼剿吻,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了始赎?” 一聲冷哼從身側(cè)響起和橙,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎造垛,沒想到半個月后魔招,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡五辽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年办斑,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杆逗。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡乡翅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出罪郊,到底是詐尸還是另有隱情蠕蚜,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布悔橄,位于F島的核電站靶累,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏癣疟。R本人自食惡果不足惜挣柬,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望睛挚。 院中可真熱鬧邪蛔,春花似錦、人聲如沸扎狱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽委乌。三九已至床牧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間遭贸,已是汗流浹背戈咳。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人著蛙。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓删铃,卻偏偏與公主長得像,于是被迫代替她去往敵國和親踏堡。 傳聞我的和親對象是個殘疾皇子猎唁,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,933評論 2 355

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

  • 學(xué)會使用CSS選擇器熟記CSS樣式和外觀屬性熟練掌握CSS各種選擇器熟練掌握CSS各種選擇器熟練掌握CSS三種顯示...
    七彩小鹿閱讀 6,314評論 2 66
  • CSS 是什么 css(Cascading Style Sheets),層疊樣式表顷蟆,選擇器{屬性:值诫隅;屬性:值}h...
    崔敏嫣閱讀 1,482評論 0 5
  • 名字:汪神經(jīng) 喜歡她六年了,經(jīng)歷過很多帐偎,有過快樂逐纬,也有過悲傷,哭過笑過∠鞣現(xiàn)在的我即將去往西藏豁生,或許我們不再是彼此的...
    Fairytale_74f7閱讀 210評論 0 0
  • 只是想,安靜地漫贞,自在地 走完自己的一生甸箱。 偶爾想要轟轟烈烈,偶爾會感傷憂慮迅脐, 最多的芍殖,是做自己覺得對的事。 看自己...
    思念小病閱讀 159評論 0 0
  • 在二十歲的年紀(jì)里谴蔑,單身這件事并不可怕围小,可怕的是既沒有人愛,也沒有合適的的人可以愛树碱。 我也想知道,到底是哪里來的執(zhí)念...
    木笑錦閱讀 474評論 0 1