帶箭頭提示框總結實例

来源:http://www.cnblogs.com/androidshouce/archive/2016/06/14/5582742.html
-Advertisement-
Play Games

無論是提示框還是導航欄都能看到如上圖所示的帶有箭頭的框框,這種箭頭可以通過背景圖片或者是css來實現,本文介紹三種通過css實現帶箭頭的提示框。 通過border屬性思路:兩個三角形,通過定位使兩個三角形相差1px作為邊框。 CSS3 transfrom思路:先做一個兩條邊相同顏色的正方形,然後旋轉 ...


 

無論是提示框還是導航欄都能看到如上圖所示的帶有箭頭的框框,這種箭頭可以通過背景圖片或者是css來實現,本文介紹三種通過css實現帶箭頭的提示框。

  1. 通過border屬性
    思路:兩個三角形,通過定位使兩個三角形相差1px作為邊框。
  2. CSS3 transfrom
    思路:先做一個兩條邊相同顏色的正方形,然後旋轉一定角度就是三角形了
  3. 特殊字元'♦'
    思路:特殊字元漏出上半部分,看上去就像三角形了

一、通過border屬性:

我們先做一個寬和高都是10px的div,邊框也是10px,

1 width: 10px;
2 height: 10px;
3 border: 10px solid;
4 border-color: red green yellow blue; 

如下圖:

圖中間空白是我們設置的寬和高,如果設置為0px,會出現什麼情況呢?,如下圖:

 

這時候我們就可以通過設置它的左右和下邊框的顏色都設成透明或和背景顏色相同的顏色,就出來我們想要的三角形了。如下圖:

 現在我們來實現第一幅圖上的效果:

css:

複製代碼
 1 .info {
 2         margin-top: 50px;
 3         position:relative;
 4         width:200px;
 5         height:50px;
 6         line-height:60px;
 7         background:#F6F1B3;
 8         box-shadow:1px 2px 3px #E9D985;
 9         border:1px solid #DACE7C;
10         border-radius:4px;
11         text-align:center;
12         color:red;
13     }
14     .nav {
15         position:absolute;
16         left:30px;
17         overflow:hidden;
18         width:0;
19         height:0;
20         border-width:10px;
21         border-style:solid dashed dashed dashed;
22     }
23     .nav-border {
24         top:-20px;
25         border-color:transparent transparent #DACE7C transparent;
26     }
27     .nav-background {
28         top:-19px;
29         border-color:transparent transparent #F6F1B3 transparent;
30     }
複製代碼

 

 html:

1 <div class="info">
2     <span>提示信息</span>
3     <div class="nav nav-border"></div>
4     <div class="nav nav-background"></div>
5 </div>

 

二、 CSS3 transfrom

我們首先製作一個兩條相鄰的邊框顏色相同,其他兩條邊邊框為0px的div方框。如圖:

在將方框旋轉45度就可以實現三角提示效果了。

css:

複製代碼
 1 .info {
 2         margin-top    : 50px;
 3         position      :relative;
 4         width         :200px;
 5         height        :50px;
 6         line-height   :60px;
 7         background    :#F6F1B3;
 8         box-shadow    :1px 2px 3px #E9D985;
 9         border        :1px solid #DACE7C;
10         border-radius :4px;
11         text-align    :center;
12         color         :red;
13     }
14     .nav {
15         position          :absolute;
16         top               :-8px;
17         left              :30px;
18         overflow          :hidden;
19         width             :13px;
20         height            :13px;
21         background        :#F6F1B3;
22         border-left       :1px solid #DACE7C;
23         border-top        :1px solid #DACE7C;
24         -webkit-transform :rotate(45deg);
25         -moz-transform    :rotate(45deg);
26         -o-transform      :rotate(45deg);
27         transform         :rotate(45deg);
28     }
複製代碼

 

html:

1 <div class="info">
2     <span>提示信息</span>
3     <div class="nav"></div>
4 </div>

 

三、特殊字元'♦' 

 '♦'是一個特殊字元,也就相當於一個字,所以大小是通過font-size來設置,實現第一幅圖的效果:

css:

複製代碼
 1 .info {
 2         margin-top: 50px;
 3         position:relative;
 4         width:200px;
 5         height:50px;
 6         line-height:60px;
 7         background:#F6F1B3;
 8         box-shadow:1px 2px 3px #E9D985;
 9         border:1px solid #DACE7C;
10         border-radius:4px;
11         text-align:center;
12         color:red;
13     }
14     .nav {
15         position:absolute;
16         left:30px;
17         overflow:hidden;
18         width:24px;
19         height:24px;
20         font:normal 24px "微軟雅黑";
21     }
22     .nav-border {
23         top:-17px;
24         color:#DACE7C;
25     }
26     .nav-background {
27         top:-16px;
28         color:#F6F1B3;
29     }
複製代碼

 

html:

1 <div class="info">
2     <span>提示信息</span>
3     <div class="nav nav-border"></div>
4     <div class="nav nav-background"></div>
5 </div>

 

 

 

下麵是一個相容IE5.5+,chrome,Firfox等瀏覽器的一個demo,如果你有用到可以直接考到自己的項目中。

複製代碼
 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4  <title></title>
 5  <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
 6  <style>
 7   div.container{
 8         position         :absolute; 
 9         top              :30px; 
10         left             :40px; 
11         font-size        : 9pt; 
12         display          :block; 
13         height           :100px; 
14         width            :200px; 
15         background-color :transparent; 
16         *border          :1px solid #666; 
17     } 
18     s{ 
19         position     :absolute; 
20         top          :-20px; 
21         *top         :-22px; 
22         left         :20px; 
23         display      :block; 
24         height       :0; 
25         width        :0; 
26         font-size    : 0;  
27         line-height  : 0; 
28         border-color :transparent transparent #666 transparent; 
29         border-style :dashed dashed solid dashed; 
30         border-width :10px; 
31     } 
32     i{
33         position     :absolute; 
34         top          :-9px; 
35         *top         :-9px; 
36         left         :-10px; 
37         display      :block; 
38         height       :0; 
39         width        :0; 
40         font-size    : 0; 
41         line-height  : 0; 
42         border-color :transparent transparent #fff transparent; 
43         border-style :dashed dashed solid dashed; 
44         border-width :10px; 
45     } 
46     .content{ 
47         border                :1px solid #666; 
48         -moz-border-radius    :3px; 
49         -webkit-border-radius :3px; 
50         position              :absolute; 
51         background-color      :#fff; 
52         width                 :100%; 
53         height                :100%; 
54         padding               :5px; 
55         *top                  :-2px; 
56         *border-top           :1px solid #666; 
57         *border-top           :1px solid #666; 
58         *border-left          :none; 
59         *border-right         :none; 
60         *height               :102px; 
61         box-shadow            : 3px 3px 4px #999; 
62         -moz-box-shadow       : 3px 3px 4px #999; 
63         -webkit-box-shadow    : 3px 3px 4px #999; 
64         /* For IE 5.5 - 7 */
65         filter: progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#999999'); 
66         /* For IE 8 */ 
67         -ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#999999')";  
68     }
69  </style>
70 </head>
71 <body>
72 <div class="container">
73         <div class="content">
74             hello world!
75         </div>
76         <s>
77             <i></i>
78         </s>
79  </div>
80 </body>
81 </html>
複製代碼

 

效果圖:

小結: 

  帶箭頭的提示框給用戶的交互帶來很好的效果,本文介紹了三個方法,如果你還有其他方法可以@me,我會非常感激。希望本文能夠對你有些幫助。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • js獲取url中的參數 function UrlSearch() { var name, value; var str = location.href; //取得整個地址欄 var num = str.indexOf("?") str = str.substr(num + 1); //取得所有參數 ...
  • 本文是【Knockout.js 學習體驗之旅】系列文章的第3篇,所有demo均基於目前knockout.js的最新版本(3.4.0)。小茄才識有限,文中若有不當之處,還望大家指出。 目錄: 【Knockout.js 學習體驗之旅】(1)ko初體驗 【Knockout.js 學習體驗之旅】(2)花式捆 ...
  • 構造函數覆蓋模式,使用new操作符調用該函數的行為就如以函數調用它的行為一樣。這能工作完全利益於js允許new表達式的結果可以被構造函數中的顯式return語句所覆蓋。當User函數返回self對象時,new表達式的結果就變為self對象。該self對象可能是另一個綁定到this的對象。 防範誤用構... ...
  • __proto__屬性很特殊,它提供了Object.getPrototypeOf方法所不具備的額外能力,即修改對象原型鏈接的能力。 避免修改__proto__屬性的最明顯的原因是可移植性的問題。並不是所有的平臺都支持修改對象原型的特性,所以無法編寫可移植的代碼。 避免修改__proto__屬性的另一 ...
  • 前幾天,舍友去某互聯網公司面前端研發工程師。回來後,他就跟我們聊了下麵試官給他出的題。其中,有一道題是“如何實現iframe高度的自適應?”。好吧,我承認,我聽到iframe這個詞的第一反應就是:這個東西性能差、搜索引擎不友好等等。由於這樣的偏見,還真沒有好好研究一下iframe。其實,iframe ...
  • every():對數組每一項都遍歷,然後每一項都符合要求的話則返回true,否則就返回false some():對數組每一項都遍歷,其中有一項符合要求則返回true,否則返回false filter():對數組的每一項都遍歷,返回其中要求的元素組成的數組 map():對數組每一項都遍歷並且運行給定的 ...
  • 之前的項目一直採用grunt來構建,然後用requirejs做模塊化,requirejs官方有提供grunt的插件來做壓縮合併。現在的項目切到了gulp,模塊化用起了seajs,自然而然地也想到了模塊合併壓縮的問題。然後一開始在解決這個問題的時候,並不是很順利,在npm上並沒有那種特別流行的專門用來... ...
  • 將近20年前,Javascript誕生的時候,只是一種簡單的網頁腳本語言。如果你忘了填寫用戶名,它就跳出一個警告。 如今,它變得幾乎無所不能,從前端到後端,有著各種匪夷所思的用途。程式員用它完成越來越龐大的項目。 Javascript代碼的複雜度也直線上升。單個網頁包含10000行Javascrip ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...