2017-07-11 47 views

回答

1

你需要使position: relative;的削減nt div和position: absolute;您想要製作箭頭的小孩div。

製造箭頭的主要事情是transform財產。

它工作正常。但是這裏箭頭的大小隻是你想要的2倍。

* {box-sizing: border-box;} 
 
.line {height: 20px; border-bottom: solid 2px #000; margin-top: 100px; position: relative; z-index: 1;} 
 
.arrow {content: ""; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); height: 20px; width: 80px; z-index: 2; background-color: #fff;} 
 
.arrow .pin {width: calc(50% + 5px); height: 2px; background: #000; display: inline-block; float: left; transform: rotate(25deg); transform-origin: 0 0;} 
 
.arrow .pin:last-child {transform: rotate(-25deg); transform-origin: 100% 0; float: right; margin-top: -2px;}
<div class="line"> 
 
\t <div class="arrow"> 
 
\t \t <div class="pin"> 
 
\t \t \t 
 
\t \t </div> 
 
\t \t <div class="pin"> 
 
\t \t \t 
 
\t \t </div> 
 
\t </div> 
 
</div>

而且它與40px x 10px大小箭頭。

* {box-sizing: border-box;} 
 
.line {height: 20px; border-bottom: solid 2px #000; margin-top: 100px; position: relative; z-index: 1;} 
 
.arrow {content: ""; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); height: 10px; width: 40px; z-index: 2; background-color: #fff;} 
 
.arrow .pin {width: calc(50% + 3px); height: 2px; background: #000; display: inline-block; float: left; transform: rotate(25deg); transform-origin: 0 0;} 
 
.arrow .pin:last-child {transform: rotate(-25deg); transform-origin: 100% 0; float: right; margin-top: -2px;}
<div class="line"> 
 
\t <div class="arrow"> 
 
\t \t <div class="pin"> 
 
\t \t \t 
 
\t \t </div> 
 
\t \t <div class="pin"> 
 
\t \t \t 
 
\t \t </div> 
 
\t </div> 
 
</div>

+0

我試着實現這一點。它在Chrome中運行良好。在FF中,與邊界相比,箭頭看起來更薄。任何解決方案? https://jsfiddle.net/w9rkzm5h/ – Hacker

+0

只需在css中添加此規則'@ -moz-document url-prefix(){.arrow .pin {height:2.2px; }}。這隻會在Firefox中起作用。更新小提琴[這裏](https://jsfiddle.net/w9rkzm5h/1/)。 –

+0

任何要放入IE或任何其他瀏覽器的東西? – Hacker

0

這很簡單。

步驟1:您爲要添加箭頭的div指定position: relative;屬性。

第2步:添加CSS箭頭:<div class="arrow-down"></div>並將position: absolute;屬性應用到它,以便您可以根據需要定位它。

所以,如果您有相關的類框格,這是你會做什麼:

HTML:

<div class="box"> 

    <div class="arrow-down"></div> 
</div> 

CSS:

// Arrow at the bottom 

.box { 
    width: 200px; 
    height: 150px; 
    background-color:red; 
    margin: 50px auto; 

    position: relative; 
} 

.arrow-down { 
    width: 0; 
    height: 0; 
    border-left: 20px solid transparent; 
    border-right: 20px solid transparent; 
    border-top: 10px solid #f00; 

    position: absolute; 
    bottom: -10px; 
    left: 80px; 
} 

這裏的提琴相同:https://jsfiddle.net/t2ne282z/

+0

箭頭亮起頂部而不是底部 – Hacker

+0

你只需要修改的位置屬性頂:到底:在這種情況下;這裏是一個更新的小提琴:https://jsfiddle.net/t2ne282z/ – Aj334

+0

我檢查,看它有顏色或紅色。箭頭應該是透明的,並且箭頭所在的行應該不顯示。 – Hacker