CSS:outline的用法,用outline實現(xiàn)鏤空效果

1.outline的用法

outline用法和border類似, 如下:

.outline {
 outline: 1px solid #000;
}

兩者表現(xiàn)也類似, 都是給元素的外面畫框,但是,作用卻不一樣。

2.outline的特性

(1)outline是一個和用戶體驗密切相關(guān)的屬性,與focus狀態(tài)和鍵盤訪問關(guān)系密切。
在訪問網(wǎng)頁的時候,如果鼠標壞了,這時候我們一般會用tab鍵來按次序不斷focus控件元素,包括:鏈接、按鈕、輸入框等表單元素,或者focus設(shè)置了tabindex的普通元素,按Shift+Tab組合鍵反方向訪問。

在默認狀態(tài)下,對處于focus狀態(tài)的元素瀏覽器會通過虛框或者外發(fā)光的形式進行區(qū)分和提示,這個虛框或者外發(fā)光就是瀏覽默認的outline,如下圖就是google默認的outline的效果。這個outline是很有用的,它可以提示用戶自己當前聚焦在哪個元素上面,而且在此時按下回車鍵就相當于點擊了這個元素。



(2)outline不占據(jù)空間
outline不論設(shè)置得多大,它都是不占據(jù)空間的,所以可以用來實現(xiàn)一些特殊的布局效果

3.outline的作用

(1)實現(xiàn)鏤空的效果:
頭像剪裁的矩形鏤空效果, 下面是最簡單的鏤空效果:

<html>
  <head>
    <style>
      .crop {
        overflow: hidden;
        height: 300px;
        width: 300px;
        background: #f00;
      }
      .crop > .crop-area {
        width: 80px; height: 80px;
        outline: 9999px solid rgba(0,0,0,.5);
        cursor: move;
      }
    </style>
  </head>
  <body>
    <div class="crop">
      <div class="crop-area">

      </div>
    </div>
  </body>
</html>

實現(xiàn)的效果如下,矩形左上角有個鏤空的小正方形:



PS:因為outline是不占據(jù)空間的,所以可以通過設(shè)置outline的寬度很大來實現(xiàn)遮罩的效果。
(2)自動填滿屏幕剩余空間的應(yīng)用技巧
看下面的代碼,內(nèi)容顯示完之后會留很大一片空白:

<html>
  <head>
    <style>
      .footer {
         height: 50px;
      }
      .footer > p {
        position: absolute;
        left: 0; right: 0;
        text-align: center;
        padding: 15px 0;
        background-color: #a0b3d6;
        clip: rect(0 9999px 9999px 0);
      }
    </style>
  </head>
  <body>
    <div class="footer">
      <p>test fill</p>
    </div>
  </body>
</html>

!](https://upload-images.jianshu.io/upload_images/7320499-3b0dea7b7c930b04.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

但是加了outline以后可以把這個屏幕用背景色填滿:

<html>
  <head>
    <style>
      .footer {
         height: 50px;
      }
      .footer > p {
        position: absolute;
        left: 0; right: 0;
        text-align: center;
        padding: 15px 0;
        background-color: #a0b3d6;
        outline: 9999px solid #a0b3d6;
        clip: rect(0 9999px 9999px 0);
      }
    </style>
  </head>
  <body>
    <div class="footer">
      <p>test fill</p>
    </div>
  </body>
</html>

現(xiàn)在再也不用擔心屏幕高度太高了!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、CSS入門 1、css選擇器 選擇器的作用是“用于確定(選定)要進行樣式設(shè)定的標簽(元素)”。 有若干種形式的...
    寵辱不驚丶歲月靜好閱讀 1,730評論 0 6
  • 第一章 F12: element.style 內(nèi)聯(lián)樣式(可以直接在上面寫代碼進行簡單調(diào)試) user agent...
    fastwe閱讀 1,654評論 0 0
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標準。 注意:講述HT...
    kismetajun閱讀 28,827評論 1 45
  • 哎呀,最近我通過音樂所得到了靈感,打算以后的作品就以音樂所想像故事吧。(盡力把它們連成一個故事)
    艾琳雅雯閱讀 79評論 0 0
  • 晚上洗完澡剛九點,坐在床上吹頭發(fā)的時候,我聽到了門鎖被鑰匙打開的咔噠聲,聽換鞋的動靜就知道是爸。我叫了他一聲,聽他...
    西伯利亞校級非法集資閱讀 410評論 0 0

友情鏈接更多精彩內(nèi)容