html - 谷歌浏览器中的 div float 左错误

标签 html css google-chrome

我有一个 HTML 菜单结构:

<div id="menu_box">
        <a title="" class="menu_item_rfc"
             href="/main/menu/1">   
            <div class="menu_item">
                bla bla bla
            </div>  
        </a>
        <a title="" class="menu_item_rfc"
             href="/main/menu/2">   
            <div class="menu_item">
                bla bla bla
            </div>  
        </a>
        <a title="" class="menu_item_rfc"
             href="/main/menu/3">   
            <div class="menu_item">
                bla bla bla
            </div>  
        </a>
    <div id="search_box">
        <form id="search_form" action="" method="post">
            <div style="float:left;padding:4px 0 0 0;">
                <input id="search" type="text" value="поиск товара" name="search"/>
            </div>
            <div style="float:left;padding:4px 0 0 0;">
                <div id="search_btn"></div>
            </div>
            <div class="clear"></div>
        </form>
    </div>
    <div class="clear"></div>
</div>

和CSS:

#menu_box {
    display: table;
    /*margin:20px auto;*/
    width:715px;
    border:1px solid #efefef;
    -moz-border-radius-left:5px;
    -webkit-border-radius:5px;
    -khtml-border-radius:5px;
    border-radius:5px;  
    margin: 23px 0 0 0;
    background-color:#efefef;
    float:right;
}
.menu_item {
    display: table-cell;
    float:left;
    margin:0;
    padding:7px 15px;
    height:18px;
    background-color:#fff;
    /* IE10 Consumer Preview */ 
    background-image: -ms-linear-gradient(top, #FFFFFF 0%, #ddd 100%);

    /* Mozilla Firefox */ 
    background-image: -moz-linear-gradient(top, #FFFFFF 0%, #ddd 100%);

    /* Opera */ 
    background-image: -o-linear-gradient(top, #FFFFFF 0%, #ddd 100%);

    /* Webkit (Safari/Chrome 10) */ 
    background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #FFFFFF), color-stop(1, #ddd));

    /* Webkit (Chrome 11+) */ 
    background-image: -webkit-linear-gradient(top, #FFFFFF 0%, #ddd 100%);

    /* W3C Markup, IE10 Release Preview */ 
    background-image: linear-gradient(to bottom, #FFFFFF 0%, #ddd 100%);    
}
#search_box {
    display: table-cell;
    float:left;
    height:32px;
    background-color:#fff;
}

如您所见,menu_box 中的所有元素都向左浮动,而 menu_box 的宽度是固定的。

问题是最后一个 div,即使它只是一个 menu_item,在调整浏览器 Ctrl+、Ctrl- 大小时会下降,但在 Ctrl0 尺寸上它是可以的。 很多用户不自觉地使用 dims +-。 这个问题只在Chrome出现,在FF、Safari、EI都可以。 我该如何解决这个问题?可能有人面临这个问题。 提前致谢。

示例:menu screen shot

PS 我不认为这是 anchor 问题,我的意思是 anchor 包裹了 div menu_item。

最佳答案

这似乎是由于浏览器计算框的方式所致。

了解 box model ,并使用 border-box .那应该可以解决您的问题。

如果没有,我将不得不查看代码。也许将它上传到 JSFiddle?

关于html - 谷歌浏览器中的 div float 左错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16633934/

相关文章:

javascript - 如何在单击侧边栏图像时将图像从侧边栏交换到中间 div?

html - 使用通用同级选择器在嵌套元素中导航

html - 如何将菜单固定在左侧,主要内容固定在右侧

javascript - 打开下拉菜单时如何在正确位置反转箭头图标? Javascript

html - 键盘可访问的下拉菜单不遍历子菜单

google-chrome - 运行 gui 测试时在 Chrome 中禁用保存密码提示

jquery - IE7 和 8 的灯箱滚动问题

css - 指定 div 高度( Bootstrap )

linux - 将当前的 firefox/chrome URL 存储在文件中

google-chrome - SessionDescription 为空。将 Chrome 更新到最新的 v 89 后,在 web rtc 中。使用以前的 Chrome 版本