CSS一些小技巧 二

用CSS計算選中標簽元素

通常都是用JS來處理已經(jīng)選擇了的標簽數(shù)量呵萨,css也可以做到。但是意義不大潮峦,除非單純展示囱皿。

html:
        <p>請選擇你感興趣的標簽:</p>
        <input type="checkbox" id="topic1"><label for="topic1" class="topic">Vue</label></input>
        <input type="checkbox" id="topic2"><label for="topic2" class="topic">react</label></input>
        <input type="checkbox" id="topic3"><label for="topic3" class="topic">jquery</label></input>
        <input type="checkbox" id="topic4"><label for="topic4" class="topic">css</label></input>
        <p>您已選擇<span class="topic-counter"></span>個標簽。</p>
css:
       /* 在body中創(chuàng)建或者重置計算器 */
        body {
            counter-reset: topicCounter;
        }
        /* 裁剪隱藏checkbox前面的小框耕渴,必須是absolut+clip,換fixed也可 */
        [type="checkbox"] {
            position: absolute;
            clip: rect(0 0 0 0);
        }       
        /* 
            選中元素其后緊跟的.topic元素,變量遞增
            :checked只適用于單選按鈕和復選框
         */
        :checked+.topic {
            counter-increment: topicCounter;
        }
        /* 添加到span中 */
        .topic-counter::before {
            color: red;
            content: counter(topicCounter);
        }

選擇器優(yōu)先級問題

<div class="bar foo"></div>    //與class里順序無關
div{background: orange;}
.foo{background: gray;}
.bar{background: green;}    //只與css類順序有關橱脸,此時div為綠色
-------------------------------------------------
//最佳方案:1.自身增強分苇,2.借助存在的屬性選擇器。此時div為灰色
<div class="bar foo"></div>    
div{background: orange;}
.foo.foo{background: gray;}    //或者:.foo[class]{background: gray; }
.bar{background: green;}  

全局盒模型沖突問題

box-sizing的默認值是content-box医寿,如果設置了內(nèi)邊距或者邊框都會使該元素寬高大于指定的寬高值靖秩。
設置box-sizing值為border-box,則height和width屬性會設置為內(nèi)容沟突、內(nèi)邊距以及邊框的大小總和。

//設置全局盒模型
*, 
::before,
::after{
    box-sizing: box;
}

但是用第三方UI庫時扩劝,會有沖突的情況求橄。此時可以使用css繼承來解決問題葡公。

:root{
    box-sizing: border-box;
}
*, 
::before,
::after{
    box-sizing: inherit;    //盒模型通常不會被繼承,但使用inherit關鍵字會強制繼承
}
//此時選中第三方組件的頂級容器催什,將其恢復為content-box。這樣組件的內(nèi)部元素就會繼承盒模型气筋,以此區(qū)分開來
.third-component{
    box-sizing: content-box;
}

字體隨頁面變換大小

//0.5em保證了最小字號旋圆,1vw則確保了字體能隨著視口縮放。能保證基礎字號從iPhone6里的11.75px一直過渡到1200px屏幕的20px搀矫。
 :root {
    font-size: calc(0.5em + 1vw);
 }

動態(tài)placeholder效果

具體效果:輸入框處于聚焦狀態(tài)時,輸入框的占位符內(nèi)容以動畫形式移動到左上角作為標題瓤球。

    <div class="main">
        <div class="input-box">
            <input class="input-control input-outline" placeholder="賬號">
            <label class="input-label">請輸入賬號</label>
        </div>
    </div>

    <style>
        * {
            padding: 0;
            margin: 0;
            border: 0;
        }

        /* 基本樣式 */
        .input-box {
            margin: 50px 0 0 50px;
        }
        input {
            width: 100px;
            height: 30px;
            border: 1px solid #aaa;
            outline: none;
            padding: 0 10px;
            border-radius: 4px;
        }
        /* 默認的placeholder效果不可見 */
        .input-control:placeholder-shown::placeholder {
            color: transparent;
        }
        /* 使用.input-label元素代替瀏覽器原聲的占位符 */
        .input-box {
            position: relative;
        }
        .input-label {
            position: absolute;
            left: 16px;
            top: 5px;
            pointer-events: none;
            color: #ccc;
        }
        /* 輸入框聚焦以及占位符不顯示的時候對<label>元素進行重定位卦羡,效果是縮小并移動到上方 */
        .input-control:not(:placeholder-shown)~.input-label,
        .input-control:focus~.input-label {
            color: #2486ff;
            transform: scale(0.75) translate(-10px, -20px);
            transition-duration: 1s;
            background: #fff;
        }
    </style>

mix-blend-mode混合元素

mix-blend-mode可以混合圖片绿饵,還可以把元素的文本和邊框與容器的背景圖片混合在一起

    <div class="main">
        <div class='blend'>
            <h1>熊出沒</h1>
        </div>
    </div>
    <style>
        * {
            padding: 0;
            margin: 0;
            border: 0
        }
        .blend {
            background-image: url('https://img6.bdstatic.com/img/image/pcindex/sunjunpchuazhoutu.JPG');
            background-size: cover;
            background-position: center;
            width: 100%;
            height: 200px;
        }
        .blend>h1 {
            mix-blend-mode: hard-light;
            background-color: #c33;
            color: #808080;
            border: 0.1em solid #ccc;
            border-width: 0.1em 0;
        }
    </style>
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蝴罪,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子要门,更是在濱河造成了極大的恐慌,老刑警劉巖封豪,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件炒瘟,死亡現(xiàn)場離奇詭異,居然都是意外死亡缘琅,警方通過查閱死者的電腦和手機廓推,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來呻纹,“玉大人专缠,你說我怎么就攤上這事±酝瘢” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵吩跋,是天一觀的道長。 經(jīng)常有香客問我怠惶,道長轧粟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任通惫,我火速辦了婚禮混蔼,結果婚禮上,老公的妹妹穿的比我還像新娘惭嚣。我一直安慰自己,他們只是感情好晚吞,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布槽地。 她就那樣靜靜地躺著,像睡著了一般捌蚊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上挺智,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天逃贝,我揣著相機與錄音谣辞,去河邊找鬼。 笑死句占,一個胖子當著我的面吹牛躯嫉,可吹牛的內(nèi)容都是我干的杨拐。 我是一名探鬼主播擂啥,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼屋吨!你這毒婦竟也來了山宾?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤资锰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后直秆,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鞭盟,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年疫稿,在試婚紗的時候發(fā)現(xiàn)自己被綠了鹃两。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡途蒋,死狀恐怖馋记,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情梯醒,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布畜隶,位于F島的核電站,受9級特大地震影響浸遗,放射性物質(zhì)發(fā)生泄漏箱亿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一察净、第九天 我趴在偏房一處隱蔽的房頂上張望盼樟。 院中可真熱鬧氢卡,春花似錦晨缴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至械拍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間甲馋,已是汗流浹背迄损。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留芹敌,地道東北人。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓碧聪,卻偏偏與公主長得像幌衣,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子豁护,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355