【问题标题】:Fixed divs are not rendering properly on IE and navbar on mobile修复了 div 在 IE 和移动设备上的导航栏上无法正确呈现
【发布时间】:2014-12-21 10:12:15
【问题描述】:

我是前端技术的新手。我正在尝试建立一个简历网站。我有 2 个固定的 div。顶部的一个用作导航栏。此 div 无法在移动设备上正确呈现。它只显示 4 个按钮,其余不渲染。

我的contact-me-form div 显示在800 像素的滚动条上。我为此使用了 Jquery。尽管我的联系我表单在 IE11 上呈现不佳,但我在 Chrome 浏览器上的视图很好。

真实视图: [IMG]http://i62.tinypic.com/fjjgau.png[/IMG]

损坏的联系我表格 [IMG]http://i58.tinypic.com/2ccmoag.png[/IMG]

固定导航栏损坏:[IMG]http://i59.tinypic.com/5lxil4.jpg[/IMG]

欢迎任何解决此问题的建议。 顺便说一句:我使用 HTML5。

<nav class="navbar">
    <ul class="menu">
        <li><a class="btn btn-alt" href=#aboutme>aboutMe</a></li>
        <li><a class="btn btn-alt" href=#education>education</a></li>
        <li><a class="btn btn-alt" href=#workhistory>workHistory</a></li>
        <li><a class="logo" href="#top">||</a></li>
        <li><a class="btn btn-alt" href=#generalskills>generalSkills</a></li>
        <li><a class="btn btn-alt" href=#knowledge>knowledge</a></li>
        <li><a class="btn btn-alt" href=#myWorks>myWorks</a></li>
    </ul>
</nav>


.navbar {
    background-color: #3149e6;
    position: fixed;
    width: 100%;
    z-index: 0;
    opacity: 0.8;
    padding: 0;
    height: 50px;
}

.menu li {
    display: inline-block;
}

.menu li a{
    text-decoration: none;
}
.btn {
    display: inline-block;
    margin: 0;
}

.btn-alt {
    padding: 10px 30px;
    height: 30px;
    line-height: 30px;
    font-family: "Open Sans Condensed";
    color: aliceblue;
}

联系我表格:

    <div id='contact'>
                <div id='form_container'>
                    <div id='form_elements'>
                        <form action="mailto:@hotmail.comtr?subject=Hey let's have a talk" method="POST" enctype="text/plain">
                            <fieldset>
                                <legend><h3>contactMe</h3></legend>
                                <input type='text' placeholder='Your Name' size="30" name="Name">
                                <input type='text' placeholder='Your E-Mail' size="30" name="E-Mail">
                                <textarea rows="7" cols="40" placeholder='Write your message here.' name="comment"></textarea>
                                <input  type="submit" value="Submit">
                                <input  type="button" value="close" id="close" name="close">
                            </fieldset>
                        </form>
                    </div>
                </div>
            </div>

#contact{
    padding-left: 100px;
    padding-right: 100px;
    width: 320px;
    margin: 0 auto;
    display: block;
    position: fixed;
    z-index: 1;
    right: 0;
    bottom: 0;
}
#form_container {
    padding-top: 100px;
    padding-bottom: 20px;
    margin: 0 auto;
    display: block;

}
#form_elements{
    margin: 0 auto;
    text-align: center;
}

#form_elements fieldset{
    border: 1px dotted #5690e6;
    border-radius: 20px;
    box-shadow: black 0px 3px 8px;
}

#form_elements input, textarea{
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    margin: 10px auto;
    resize:none;
}
#form_elements input{
    display: inline-block;
    width: 150px;
    margin-right: 10px;
    margin-left: 10px
}

【问题讨论】:

    标签: html css


    【解决方案1】:

    您的顶部菜单栏未呈现,因为您在 btn-alt 类上具有以固定宽度度量 (px) 表示的填充。

    如果您说每个菜单项的每边必须有 30 像素的填充,这意味着每个菜单选项将是 60 像素 + 文本的宽度。您有 6 个这样的菜单选项,因此仅用于填充的 MIN 宽度为 360 像素。

    一种更好的方法是用 % 来表示宽度,然后设置一个 min-width 属性,这样菜单项就可以相互推入。

    .menu li {
        width: 16.6667%;
        min-width: 100px;
    }
    

    如果您真的对优化移动设备感兴趣,请查看@media queries

    与此同时,您的代码已更新 http://jsfiddle.net/vs8mwebx/

    【讨论】:

    • 好的,您解决了我的问题,但您的代码中有错误。设置相对宽度的时候,中间漏掉了一个叫做logo div的div。因此,有 7 个 div 而不是 6 个。请更新您的答案 .menu li { width: 14.428%;最小宽度:100px; }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-10
    • 1970-01-01
    • 1970-01-01
    • 2018-04-29
    • 2015-04-30
    相关资源
    最近更新 更多