2017-05-30 24 views
1

嘗試讓切換div直接在父項下對齊有點麻煩。它看起來似乎在右邊,稍微超過父母的頂部。直接在父項下面對齊切換div

這將用於編輯器工具欄,文本編輯器stackoverflow和各種論壇使用。

不確定最好和最簡單的方法來解決它。

$(document).on('click', ".editor-dropdown", function() { 
 
    $('.editor-dropdown-content', this).toggle(); // p00f 
 
});
.editor-dropdown { 
 
    background: #ffffff; 
 
    border: 1px solid #ddd; 
 
    cursor: pointer; 
 
    float: left; 
 
    padding: 5px 14px; 
 
} 
 

 
.editor-dropdown-content { 
 
    display: none; 
 
    z-index: 900; 
 
    position: absolute; 
 
    background: #ffffff; 
 
    border: 1px solid #ddd; 
 
    padding: 5px 14px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="editor-dropdown"> 
 
    Header 
 
    <b class="caret-down"></b> 
 
    <div class="editor-dropdown-content"> 
 
    <span class="dropdown-option" data-tag="h1">H1</span> H2 H3 H4 
 
    </div> 
 
</div>

實施例:https://codepen.io/anon/pen/JNQZzM

回答

1

設置父position: relative然後使用top/left定位放到哪裏你想要的菜單。如果你希望一切都更好地對齊,我會將「標題」文本作爲一個元素,並將border/padding/etc應用於它,並以與設置爲left: 0; top: 100%;相同的方式設置菜單的樣式,將其左對齊並放在「標題」

$(document).on('click', ".editor-dropdown", function() 
 
{ 
 
\t $('.editor-dropdown-content', this).toggle(); // p00f 
 
});
.editor-dropdown { 
 
    float: left; 
 
    position: relative; 
 
} 
 

 
.dropdown-header { 
 
    background: #ffffff; 
 
    border: 1px solid #ddd; 
 
    cursor: pointer; 
 
    padding: 5px 14px; 
 
    display: inline-block; 
 
} 
 

 
.editor-dropdown-content { 
 
    display: none; 
 
    z-index: 900; 
 
    position: absolute; 
 
    background: #ffffff; 
 
    left: 0; 
 
    top: 100%; 
 
    border: 1px solid #ddd; 
 
    padding: 5px 14px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="editor-dropdown"> 
 
    <span class="dropdown-header">Header</span> 
 
    <b class="caret-down"></b> 
 
    <div class="editor-dropdown-content"> 
 
    <span class="dropdown-option" data-tag="h1">H1</span> H2 H3 H4 
 
    </div> 
 
</div>

+0

是的,這樣做即使沒有將「標題」文本設置爲跨度,也是如此,但請記住這一點,謝謝!這個解決方案完美無缺,並沒有強迫我像其他人所建議的那樣分離內容。 – NaughtySquid

0

我編輯象下面

.editor-dropdown-content 
{ 
display: none; 
z-index: 900; 
position:relative; 
background: #ffffff; 
border: 1px solid #ddd; 
padding: 5px 14px; 
left: 60; 
bottom: 100; 
} 

之所以能夠對齊下面標頭中的CSS。檢查codepen下面

https://codepen.io/anon/pen/xdoJKp

+0

對不起,這最終保持它的父元素,它最終看起來很奇怪裏面。 – NaughtySquid

+0

哦,對不起,誤解了你的問題,你希望它完全脫離標題並在下面對齊? – Bharath

+0

是的,正好:) – NaughtySquid

0

這是你所追求的?

$(document).on('click', ".editor-dropdown", function() 
 
{ 
 
\t $('.editor-dropdown-content').toggle(); // p00f 
 
});
.editor-dropdown 
 
{ 
 
\t background: #ffffff; 
 
\t border: 1px solid #ddd; 
 
\t cursor: pointer; 
 
\t padding: 5px 14px; 
 
    width: 200px; 
 
} 
 
.editor-dropdown-content 
 
{ 
 
\t display: none; 
 
\t background: #ffffff; 
 
\t border: 1px solid #ddd; 
 
\t padding: 5px 14px; 
 
    width: 200px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="editor-dropdown">Header 
 
\t <b class="caret-down"></b> \t \t \t \t 
 
</div> 
 
<div class="editor-dropdown-content"> 
 
\t <span class="dropdown-option" data-tag="h1">H1</span> 
 
\t \t \t \t \t H2 
 
\t \t \t \t \t H3 
 
\t \t \t \t \t H4 
 
</div>

0

的看看這一個?

HTML:

<div class="editor-dropdown"> 
       Header 
    <b class="caret-down"></b> 
    </div> 
    <div class="editor-dropdown-content"> 
     <span class="dropdown-option" data-tag="h1">H1</span> 
     <span class="dropdown-option" data-tag="h1">H2</span> 
     <span class="dropdown-option" data-tag="h1">H3</span>   
     <span class="dropdown-option" data-tag="h1">H4</span> 
    </div> 

的CSS:

.editor-dropdown 
{ 
background: #ffffff; 
border: 1px solid #ddd; 
cursor: pointer; 
padding: 5px 14px; 
} 
.editor-dropdown-content 
{ 
display: none; 
z-index: 900; 
top: 40px; 
background: #ffffff; 
border: 1px solid #ddd; 
padding: 5px 14px; 
} 

.dropdown-option { 
display:block; 
} 

的Javascript:

$(document).on('click', ".editor-dropdown", function() 
{ 
$('.editor-dropdown-content').toggle(); // p00f 
}); 

https://codepen.io/anon/pen/ZKdjLJ

1

請把 「標題」 文本下span標籤,並給它一個類喜歡 如下:

<div class="editor-dropdown"> 
    <span class="dropdoanHeader">Header</span> 
    <b class="caret-down"></b> 
    <div class="editor-dropdown-content"> 
     <span class="dropdown-option" datatag="h1">H1</span> 
     H2 
     H3 
     H4 
    </div> 
</div> 

之後替換以下CSS

.editor-dropdown 
{ 
    background: #ffffff; 
    border: 1px solid #ddd; 
    cursor: pointer; 
    float: left; 
} 

.dropdoanHeader 
{ 
    padding: 5px 14px; 
} 

.editor-dropdown-content 
{ 
    position:absolute; 
    padding-left:10px; 
    background: #ffffff; 
    border: 1px solid #ddd; 
    padding: 5px 14px; 
}