2014-06-05 269 views
1

基本上我試圖將兩個垂直按鈕對齊我的網站的右側。當我點擊時,它會顯示另一個幫助我jQuery動畫的div。這裏是我的html代碼:垂直對齊按鈕

<div id="rightBar"> 
     <input type='button' id='hideshow' value='Show/Hide' /> 
     <input type='button' id='hideshowBookmark' value='Bookmark' /> 
     <div id='rightContent'> 
      <table style="width:100%; text-align: center;padding: 2px;"> 
       <th colspan="2"><b>Get Directions</b></th> 
       <tr><td>&nbsp;</td></tr> 
       <tr> 
        <td width="120px"><label class="title">Get Location: </label></td> 
        <td><input id="txtFrom" type="text" class="textInput" placeholder="Outram" />&nbsp;<img id="AutoFrom" src="img/map.jpg" class="button_search" onclick="GetDataFrom();"/>&nbsp;<label class="title">To</label>&nbsp; <input id="txtTo" type="text" class="textInput" placeholder="Hougang mall" />&nbsp;<img id="AutoTo" src="img/map.jpg" class="button_search" onclick="GetDataTo();" /></td> 
       </tr> 
      </table> 
      <div id="divDirectionResults" style="display: none; border:1px solid black; opacity: 0.8; filter: progid:DXImageTransform.Microsoft.Alpha(opacity=80); background:#000000; width:auto; height:190px;"></div> 
      <table style="width:100%; text-align: center;padding: 2px;"> 
       <tr> 
        <td colspan="2" style="padding-left:45px;"><input id="CbAvoid" type="checkbox" checked="checked" />&nbsp; Avoid ERP</td> 
       </tr> 
       <tr><td>&nbsp;</td></tr> 
       <tr> 
        <td style="width: 35%;">&nbsp;</td> 
        <td><input value="Get Routing" type="button" onClick="getDirections();" style="width: 109px; height: 23px;font-size:7pt;font-weight:bold;"/><input type="button" onclick="resetSearchField();" style="width: 58px; height: 23px;font-size: 7pt;font-weight:bold;" value="Reset"/></td> 
       </tr> 
      </table> 
      <div id="divComputedDirection"> 
      </div> 
     </div> 
    </div> 

而且我的JavaScript:

 $(document).ready(function() { 
    $('#hideshow').click(function() { 
     $('#rightContent').animate({ 
      width: 'toggle' 
     }, 1000 
       ); 
    }); 

    $('#hideshow').val('H\ni\nd\ne\n/\nS\nh\no\nw'); 
    $('#hideshowBookmark').val('B\no\no\no\nk\nm\na\nr\nk'); 
}); 

而CSS:

#rightBar 
{ 
    float: right; 
} 

#hideshow 
{ 
    float: right; 
    padding: 10px; 
    background: linear-gradient(#81BEF7,#2E9AFE); 
    border-radius: 3px; 
    font-weight: bold; 
    border: 0; 
} 
#hideshow:active 
{ 
    outline:none; 
} 
#hideshowBookmark 
{ 
    float: right; 
    padding: 10px; 
    background: linear-gradient(#81BEF7,#2E9AFE); 
    border-radius: 3px; 
    font-weight: bold; 
    border: 0; 
    margin-top: 170px; 
} 
#hideshowBookmark:active 
{ 
    outline:none; 
} 

#rightContent 
{ 
    width: 320px; 
    height: 440px; 
    background-color: white; 
    display: none; 
    margin-right: 40px; 
    border-radius: 5px; 
    border: 1px solid grey; 
} 

不知何故,DIV中的元素向下移動,當我點擊第一個按鈕。而我的第二個按鈕沒有對齊到右側。

這裏是我的小提琴:Fiddle Link

我不知道爲什麼會這樣呢?是因爲我的CSS還是我放置html組件的方式?

在此先感謝。

回答

1

只需刪除頂部邊距併爲元素添加清除。 Clear做它所說的,它從流中清除漂浮的元素。

只要改變你的CSS這樣的:

#hideshowBookmark 
{ 
    float: right; 
    padding: 10px; 
    background: linear-gradient(#81BEF7,#2E9AFE); 
    border-radius: 3px; 
    font-weight: bold; 
    border: 0; 
    clear:both; 
} 

下面是更新Fiddle

這裏有一些關於Clear的好文檔。

+0

它的工作原理!謝謝您的幫助! –

+0

只是想知道爲什麼當我滑出div時,所有組件都在移動?你知道如何讓自己的位置留下嗎? –

+0

這不完全是幻燈片。你正在使用'width'切換,所以裏面的內容適應div擴展時的當前寬度。在StackOverflow中搜索解決方案,如果你沒有找到它,你應該打開一個新的問題。 – Cthulhu

1

更改CSS這個類以下內容:

#hideshowBookmark 
{ 
    float: right; 
    padding: 10px; 
    background: linear-gradient(#81BEF7,#2E9AFE); 
    border-radius: 3px; 
    font-weight: bold; 
    border: 0; 
    margin-top: 170px; 
    position: absolute; 
    right: 7px; 
} 

fiddle

+0

它的工作原理!謝謝。順便說一下,你添加了什麼?你能向我解釋一下嗎? –

+0

嗯,我不是很擅長解釋,但我會試一試。絕對位置可以將元素精確放置在您想要的位置。所以我改變它的位置爲絕對,並與權利到7像素我把它放在右側:) –

+0

然而,與'位置:絕對;'你完全從流中刪除你的元素('浮動'是什麼都不做) ,所以創建佈局可能會有點棘手。元素的位置對於父元素是絕對的,所以如果你改變了父元素,你也會改變這個孩子。另外,如果你有20個元素,把所有東西放在絕對位置不是一個好習慣,最好讓它們保持漂浮狀態。 – Cthulhu

2

檢查出這個fiddle

您需要的CSS添加到div rightBar這個CSS

#rightBar 
{ 
    float: right; 
    position:relative; 
} 

#hideshowBookmark

#hideshowBookmark 
{ 
    float: right; 
    padding: 10px; 
    background: linear-gradient(#81BEF7,#2E9AFE); 
    border-radius: 3px; 
    font-weight: bold; 
    border: 0; 
    margin-top: 170px; 
    position:absolute; 
    right:0; 
} 
+0

當然,謝謝。有用! –

+0

只是想知道爲什麼當我滑出div時,所有組件都在移動?你知道如何讓自己的位置留下嗎? –

1

我通過將rightContent div移出rightBar div來修復它,從按鈕中刪除浮動屬性並將浮動屬性添加到rightContent div。

另請參見JsFiddle

+0

只是想知道爲什麼當我滑出div時,所有組件都在移動?你知道如何讓自己的位置留下嗎? –

+0

這是因爲寬度在變化,組件使用的空間已經有了。用這種方法你不能讓他們留在這個方法中。 – frieder

+0

你有什麼想法解決這個問題嗎? –