我有这段代码:
<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
}
现在发生的是头部,当我玩它的宽度时,我可以确保它触及输入文本框但是当我切换浏览器时我需要重新编辑那个宽度属性
答案 0 :(得分: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;
,以确保它填满所有空白区域。
答案 1 :(得分:0)
您不需要任何box-sizing
。只需设置.searchform2
width: 25.7%
,将border
移至.searchform2 form
并添加overflow: hidden
,因为内部有浮动元素。
请参阅小提琴:http://jsfiddle.net/nNQF9/9/
我想解释一下:
元素的总宽度或高度= width/height
+ padding
+ margin
+ border-width
例如,如果设置为width: 50%
而另外设置为border: 2px soid whatever
,那么元素的总宽度为50% + 4px
。
如果我们希望宽度完全符合某个比例,我们需要边框,填充或边距,那么我们需要更多的投币器:
<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来改变边框,填充和边距对总宽度和高度的影响。