2013-09-24 37 views
2

我有一個自定義的CSS工具提示,當它出現時,它會推下其他內容。我知道,我需要添加position: absolute得到它的工作的權利,但我似乎無法找出其中...CSS/HTML:工具提示推送內容下載

HTML:

<p>Fluff</p> 
<p>Fluff</p> 
<p>Fluff</p> 
<p>Fluff</p> 
<p>Fluff</p> 

    <div class="outer"> 

    <a class="tippy" href=""> 
     ICON<img src="" class="icon"/> 
    </a> 

    <div class="tooltip"> 
     STUFF<br/> 
     STUFF<br/> 
     STUFF<br/> 
     STUFF<br/> 
     STUFF<br/> 
    </div> 

    </div><!-- Container --> 

<p>FluffFluffFluffFluffFluffFluffFluffFluffFluff</p> 
<p>FluffFluffFluffFluffFluffFluffFluffFluffFluff</p> 
<p>FluffFluffFluffFluffFluffFluffFluffFluffFluff</p> 
<p>FluffFluffFluffFluffFluffFluffFluffFluffFluff</p> 

CSS:

.outer { 
    width: 350px; 
} 

.tippy { 
    text-decoration: none; 
} 

a.tippy:hover + div { 
    display:block; 
    float: right; 
} 

.tooltip { 
    margin-left: 5px; 
    margin-top: -15px; 
    padding: 10px; 
    width: 265px; 
    height: 110px; 
    background-color: #ccc; 
    position: relative; 
    border: 2px solid #333; 
    display: none; 
} 
.tooltip:after, .tooltip:before { 
    border: solid transparent; 
    content:' '; 
    height: 0; 
    right: 100%; 
    position: absolute; 
    width: 0; 
} 
.tooltip:after { 
    border-width: 11px; 
    border-right-color: #ccc; 
    top: 13px; 
} 
.tooltip:before { 
    border-width: 14px; 
    border-right-color: #333; 
    top: 10px; 
} 

Fiddle:

+0

無法從您的代碼中知道什麼是工具提示和什麼是內容,而無需查看jsFiddle。 –

+0

我會將「demo」更改爲「tooltip」 – Keven

回答

1

您需要將position:relative更改爲position:absolute.tooltip CSS塊中。

由於此更改,您還需要修改用於定位工具提示的CSS。

如果修改.outerposition:relative這是因爲設置.tooltip作爲

left:55px; 
top:-15px; 

產生的CSS(僅顯示塊已更改)一樣簡單:

.outer { 
    width: 350px; 
    position:relative; 
} 
.tooltip { 
    left: 55px; 
    top: -15px; 
    padding: 10px; 
    width: 265px; 
    height: 110px; 
    background-color: #ccc; 
    position: absolute; 
    border: 2px solid #333; 
    display: none; 
} 

最後a jsFiddle表現它在行動中。

+0

您真棒。我其實接近這個。不過,我用'margin:-43px 0 5px 50px;'而不是'left'和'top'。爲什麼'left'和'top'會更好?我也沒有在外部div中包含'position:relative;'並且它仍然有效。任何理由? – Keven

+0

邊距基於元素的當前位置,因此無論是絕對位置,相對位置還是其他位置,它都會依據這些值進行偏移,並且是完全符合您需要的方法。除非它需要,否則它對於我來說建立絕對定位的元素具有更多的語義意義,其絕對值如'top'和'left'。最後,如果你知道如何達到預期的結果,你就知道兩種方法。 –