2014-01-18 32 views
1

我有這樣的代碼:我怎麼能在所有瀏覽器並排元素刪除兩個側之間的空間

<div class="headmenus"> 
    <ul> 
    <li><a href="index.php">HOME</a></li> 
    <li><a href="about.php">ABOUT US</a></li> 
    <li><a href="search.php">COURSES</a></li> 
    <li><a href="vacancies.php">VACANCIES</a></li> 
    <li><a href="contact.php">CONTACT US</a></li> 
    <li></li>   
    </ul> 
</div> 
<div class="searchform2"> 
    <form action="search.php#goto1" method="get" id="headersearch"> 
     <input type="hidden" name="p" value="0" /> 
     <input type="text" name="keyword" id="headerkeyword" placeholder="Search any keyword" value="" /> 
     <input type="submit" value="SEARCH" class="but1" /> 
    </form> 
</div> 

我想由並排放置的headmenus和searchform2被觸及所有的瀏覽器,即我想在所有瀏覽器上刪除headmenus和searchform2之間的空格。

這裏的CSS:

.searchform2 { 
    float: right; 
    display: inline; 
    width:auto !important; 
    border:2px solid #616566; 
} 
.searchform2 input { 
    border:2px solid #616566; 
    float: left; 
/* margin-right: 15px; 
    padding: 4px; 
    width: auto; 
    height:26px; 
*/} 
.searchform2 .but1 { 
    background: url("images/search.png") no-repeat scroll 8px 9px #89AB20; 
    border: 0 none !important; 
    color: #FFFFFF !important; 
    float: right !important; 

    display: inline; 
    font-weight: bold; 
    padding: 6px 12px 6px 23px !important; 
    width: auto !important; 
    font-family: Arial; 
    font-size: 12px; 
    height: 30px; 
    margin-right: 0 !important; 
    cursor:pointer; 
} 

和這裏的headmenus CSS:

.headmenus { 
    background: none repeat scroll 0 0 #0086B2; 
    display: inline; 
    float: left; 
    margin: 0; 
    width: 74.3%; 
} 
.headmenus ul { 
    border-bottom: 1px solid #FFFFFF; 
    border-top: 1px solid #FFFFFF; 
    display: inline; 
    float: left; 
    font-family: 'texgyreadventorregular'; 
    font-size: 14px; 
    margin: 0; 
    padding: 0; 
    width: 100%; 
} 
.headmenus ul li { 
    border-right: 1px solid #FFFFFF; 
    color: #FFFFFF; 
    display: inline; 
    float: left; 
    list-style-type: none; 
    padding: 0; 
    text-align: center; 
    width: 13.35%; 
} 

.headmenus ul li a { 
    color: #FFFFFF; 
    display: inline; 
    float: left; 
    font-family: 'texgyreadventorregular'; 
    font-size: 14px; 
    list-style-type: none; 
    text-align: center; 
    width: 100%; 
    padding:5px 0px; 
} 

.headmenus ul li:hover { 
    background: #89ab20; 
    cursor: pointer; 
} 
.headmenus ul li.active { 
    background: #89ab20; 
} 
.headmenus ul li:last-child { 
    border-right: 0 none; 
    float: right; 
    width: auto; !important 
} 

發生了什麼事,現在是,headmenus,當我與它的寬度玩,我可以確保它觸及輸入文本框,但是當我切換瀏覽器時,我需要重新編輯該寬度屬性

+0

「touch」是什麼意思?你可以點擊它在一個基於觸摸的設備上,這應該不是一個問題... –

+0

啊我的意思是我不想在元素之間的空間:) – Kam

+0

headmenu是向左浮動,searchform是浮動的權利。如果你想讓他們「觸摸」,然後爲兩者設置相同的浮動方向。 – atlavis

回答

1

您應該刪除border-right: 1px solid #FFFFFF;.headmenus ul li。然後按鈕將彼此相鄰而沒有間隙。舉例來說,參見this fiddle(元素對於可視性是灰色的)。

*{box-sizing: border-box; -moz-box-sizing: border-box;}負責在所有瀏覽器中將其相鄰顯示。如果您對箱子尺寸屬性感興趣,請查看this article from Paul Irish

你需要確保你的.searchform2有一個width:25.6% !important;它確保它填滿了所有的空白空間。

+0

沒有它沒有工作:( 發生了什麼事是headmenus的背景,當我與它的寬度玩,我可以確保它觸及的輸入文本框,但是當我切換瀏覽器,我需要重新編輯width屬性 – Kam

+0

檢查[這個小提琴(http://jsfiddle.net/nNQF9/1/),就是你所要完成的?,搜索框始終觸摸菜單? –

+0

你是否看到藍色背景和輸入框之間的空格?我想在所有瀏覽器中刪除它 – Kam

0

您不需要任何box-sizing。只需設置.searchform2​​,將border移動到.searchform2 form並添加overflow: hidden由於裏面的浮動元素。

見小提琴:http://jsfiddle.net/nNQF9/9/

我想解釋一下:

總寬度或元件的高度= width/height + padding + marginborder-width +

例如,如果被設置width: 50%和additionaly border: 2px soid whatever則元素的總寬度爲50% + 4px

如果我們想寬度完全適合一些比我們需要的邊框,填充或利潤那麼我們需要更多的cointainers:

<div class="cointainer_left_75_percents"> 
    <div class="container_with_borders_paddings_margins"> 
     ... 
    </div> 
</div> 
<div class="cointainer_right_25_percents"> 
    <div class="container_with_borders_paddings_margins"> 
     ... 
    </div> 
</div> 

或者我們可以使用實驗財產box-sizing從而改變邊界的影響,填充和總寬度和高度的利潤率。

相關問題